Narzędzia użytkownika

Narzędzia witryny


nanopi_neo

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
nanopi_neo [2020/12/15 20:59] – [Przycisk] kamilnanopi_neo [2020/12/18 09:57] (aktualna) – [Dioda RGB] kamil
Linia 115: Linia 115:
   * pin 6 - GND   * pin 6 - GND
  
-Przykładowy program, który korzysta z w/w biblioteki WiringPI mamy tu: [[https://github.com/nkundu/wiringpi-examples/blob/master/dht11.c]]+Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https://github.com/nkundu/wiringpi-examples/blob/master/dht11.c]]
 <file> <file>
 /* /*
Linia 257: Linia 257:
   * pin 14 - GND   * pin 14 - GND
  
-Przykładowy program, który korzysta z w/w biblioteki WiringPI mamy tu: [[http://www.bristolwatch.com/rpi/code/i2clcd.txt]]+Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[http://www.bristolwatch.com/rpi/code/i2clcd.txt]]
 <file> <file>
 /* /*
Linia 480: Linia 480:
   * pin 20 - GND   * pin 20 - GND
  
-Przykładowy program, który korzysta z w/w biblioteki WiringPI mamy tu: [[http://www.bristolwatch.com/rpi/code/i2clcd.txt]]+Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_External_Button]]
 <file> <file>
 #include <stdio.h> #include <stdio.h>
Linia 514: Linia 514:
 </file> </file>
  
-To nasz nr GPIO.+Jest to nr portu w WiringPI. Można odczytać za pomocą polecenia: "gpio readall" - u mnie akurat podłączony do pinu nr 24 (kolumna Physical) - co daje nr 10 (kolumna wPi). 
 + 
 +Kompilujemy: 
 +<file> 
 +gcc -Wall ./button.c -o ./button  -lwiringPi -lpthread 
 +</file> 
 + 
 +I uruchamiamy: 
 +<file> 
 +# ./button 
 +Key Test Program!!! 
 +KEY PRESS 
 +KEY PRESS 
 +KEY PRESS 
 +KEY PRESS 
 +KEY PRESS 
 +KEY PRESS 
 +KEY PRESS 
 +^C 
 +</file> 
 + 
 +==== Dioda ==== 
 + 
 +Podłączamy wg schematu: 
 + 
 +{{::diode.png?direct|}} 
 + 
 +Czyli: 
 +  * pin 22 - GPIO 
 +  * pin 6 - GND (nóżka krótsza) 
 + 
 +Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_External_Button]] 
 +<file> 
 +#include <wiringPi.h> 
 + 
 +#define DIODE 6 
 + 
 +int main (void) 
 +
 +  wiringPiSetup () ; 
 +  pinMode (DIODE, OUTPUT) ; 
 +  for (;;) 
 +  { 
 +    digitalWrite (DIODE, HIGH) ; delay (500) ; 
 +    digitalWrite (DIODE,  LOW) ; delay (500) ; 
 +  } 
 +  return 0 ; 
 +
 +</file> 
 + 
 +Gdzie linia: 
 +<file> 
 +#define DIODE 6 
 +</file> 
 + 
 +Jest to nr portu w WiringPI. Można odczytać za pomocą polecenia: "gpio readall" - u mnie akurat podłączony do pinu nr 22 (kolumna Physical) - co daje nr 6 (kolumna wPi). 
 + 
 +Kompilujemy: 
 +<file> 
 +gcc -Wall ./diode.c -o ./diode -lwiringPi -lpthread 
 +</file> 
 + 
 +Po uruchomieniu dioda powinna migać. 
 + 
 +==== Dioda RGB ==== 
 + 
 +Podłączamy wg schematu: 
 + 
 +{{::diodergb.png?direct|}} 
 + 
 +Czyli: 
 +  * pin 1 - 3,3V 
 +  * pin 12 - GPIO1 
 +  * pin 13 - GPIO2 
 +  * pin 15 - GPIO3 
 + 
 +Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https://www.admfactory.com/rgb-led-on-raspberry-pi-using-c/]] 
 +<file> 
 +#include <wiringPi.h> 
 +#include <softPwm.h> 
 +#include <stdio.h> 
 + 
 +#define LedPinRed    1 
 +#define LedPinGreen 
 +#define LedPinBlue   3 
 + 
 +const int colors[] = {0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0x00FFFF, 0xFF00FF, 0xFFFFFF, 0x9400D3}; 
 + 
 +int map(int x, int in_min, int in_max, int out_min, int out_max) 
 +
 +        return (x -in_min) * (out_max - out_min) / (in_max - in_min) + out_min; 
 +
 + 
 +void ledInit(void) 
 +
 +        softPwmCreate(LedPinRed,  0, 100);  //create a soft pwm, original duty cycle is 0Hz, range is 0~100 
 +        softPwmCreate(LedPinGreen,0, 100); 
 +        softPwmCreate(LedPinBlue, 0, 100); 
 +
 + 
 +void ledColorSet(int color)        //set color, for example: 0xde3f47 
 +
 +        int r_val, g_val, b_val; 
 + 
 +        r_val = (color & 0xFF0000) >> 16;  //get red value 
 +        g_val = (color & 0x00FF00) >> 8;   //get green value 
 +        b_val = (color & 0x0000FF) >> 0;   //get blue value 
 + 
 +        r_val = map(r_val, 0, 255, 0, 100);    //change a num(0~255) to 0~100 
 +        g_val = map(g_val, 0, 255, 0, 100); 
 +        b_val = map(b_val, 0, 255, 0, 100); 
 + 
 +        softPwmWrite(LedPinRed,   100 - r_val);  //change duty cycle 
 +        softPwmWrite(LedPinGreen, 100 - g_val); 
 +        softPwmWrite(LedPinBlue,  100 - b_val); 
 +
 + 
 +int main(void) 
 +
 +        int i; 
 + 
 +        if(wiringPiSetup() < 0) { //when initialize wiringPi failed, print message to screen 
 +                printf("setup wiringPi failed !\n"); 
 +                return -1; 
 +        } 
 + 
 +        ledInit(); 
 + 
 +        while(1) { 
 +                for(i = 0; i < sizeof(colors)/sizeof(int); i++) { 
 +                        ledColorSet(colors[i]); 
 +                        delay(1000); 
 +                } 
 +        } 
 +        return 0; 
 +
 +</file> 
 + 
 +Gdzie linie: 
 +<file> 
 +#define LedPinRed    1 
 +#define LedPinGreen 
 +#define LedPinBlue   3 
 +</file> 
 + 
 +Są to nr portów w WiringPI. Można odczytać je za pomocą polecenia: "gpio readall" - u mnie akurat podłączone do pinów nr 12, 13, 15 (kolumna Physical) - co daje nr 1, 2, 3 (kolumna wPi). 
 + 
 +Kompilujemy: 
 +<file> 
 +gcc -Wall ./diodergb.c -o ./diodergb -lwiringPi -lpthread 
 +</file> 
 + 
 +Po uruchomieniu dioda powinna migać na różne kolory.
nanopi_neo.1608062370.txt.gz · ostatnio zmienione: 2020/12/15 20:59 przez kamil