Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersjaOstatnia wersjaNastępna rewizja po obu stronach | ||
nanopi_neo [2020/12/15 20:58] – [Przycisk] kamil | nanopi_neo [2020/12/18 09:54] – 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:// | + | Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https:// |
< | < | ||
/* | /* | ||
Linia 257: | Linia 257: | ||
* pin 14 - GND | * pin 14 - GND | ||
- | Przykładowy program, który korzysta z w/w biblioteki WiringPI mamy tu: [[http:// | + | Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[http:// |
< | < | ||
/* | /* | ||
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/ | + | Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series: |
< | < | ||
+ | #include < | ||
+ | #include < | ||
+ | char KEY = 10; | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | if (wiringPiSetup() < 0)return 1 ; | ||
+ | // Sets the pin as input. | ||
+ | pinMode(KEY, | ||
+ | // Sets the Pull-up mode for the pin. | ||
+ | pullUpDnControl(KEY, | ||
+ | printf(" | ||
+ | while(1) | ||
+ | { | ||
+ | if (digitalRead(KEY) == 0) | ||
+ | { | ||
+ | printf ("KEY PRESS\n" | ||
+ | // Returns the value read at the given pin. It will be HIGH or LOW (0 or 1). | ||
+ | while(digitalRead(KEY) == 0) | ||
+ | delay(100); | ||
+ | } | ||
+ | delay(100); | ||
+ | } | ||
+ | } | ||
</ | </ | ||
+ | |||
+ | Gdzie linia: | ||
+ | < | ||
+ | char KEY = 10; | ||
+ | </ | ||
+ | |||
+ | Jest to nr portu w WiringPI. Można odczytać za pomocą polecenia: "gpio readall" | ||
+ | |||
+ | Kompilujemy: | ||
+ | < | ||
+ | gcc -Wall ./button.c -o ./ | ||
+ | </ | ||
+ | |||
+ | I uruchamiamy: | ||
+ | < | ||
+ | # ./button | ||
+ | Key Test Program!!! | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | KEY PRESS | ||
+ | ^C | ||
+ | </ | ||
+ | |||
+ | ==== Dioda ==== | ||
+ | |||
+ | Podłączamy wg schematu: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Czyli: | ||
+ | * pin 22 - GPIO 6 | ||
+ | * pin 6 - GND (nóżka krótsza) | ||
+ | |||
+ | Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https:// | ||
+ | < | ||
+ | #include < | ||
+ | |||
+ | #define DIODE 6 | ||
+ | |||
+ | int main (void) | ||
+ | { | ||
+ | wiringPiSetup () ; | ||
+ | pinMode (DIODE, OUTPUT) ; | ||
+ | for (;;) | ||
+ | { | ||
+ | digitalWrite (DIODE, HIGH) ; delay (500) ; | ||
+ | digitalWrite (DIODE, | ||
+ | } | ||
+ | return 0 ; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Gdzie linia: | ||
+ | < | ||
+ | #define DIODE 6 | ||
+ | </ | ||
+ | |||
+ | Jest to nr portu w WiringPI. Można odczytać za pomocą polecenia: "gpio readall" | ||
+ | |||
+ | Kompilujemy: | ||
+ | < | ||
+ | gcc -Wall ./diode.c -o ./diode -lwiringPi -lpthread | ||
+ | </ | ||
+ | |||
+ | Po uruchomieniu dioda powinna migać. | ||
+ | |||
+ | ==== Dioda RGB ==== | ||
+ | |||
+ | Podłączamy wg schematu: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Czyli: | ||
+ | * pin 1 - 3,3V | ||
+ | * pin 11 - GPIO0 | ||
+ | * pin 13 - GPIO2 | ||
+ | * pin 15 - GPIO3 | ||
+ | |||
+ | Przykładowy program, który korzysta z biblioteki WiringPI mamy tu: [[https:// | ||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #define LedPinRed | ||
+ | #define LedPinGreen | ||
+ | #define LedPinBlue | ||
+ | |||
+ | 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, | ||
+ | softPwmCreate(LedPinGreen, | ||
+ | softPwmCreate(LedPinBlue, | ||
+ | } | ||
+ | |||
+ | void ledColorSet(int color) | ||
+ | { | ||
+ | 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, | ||
+ | softPwmWrite(LedPinGreen, | ||
+ | softPwmWrite(LedPinBlue, | ||
+ | } | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | int i; | ||
+ | |||
+ | if(wiringPiSetup() < 0) { //when initialize wiringPi failed, print message to screen | ||
+ | printf(" | ||
+ | return -1; | ||
+ | } | ||
+ | |||
+ | ledInit(); | ||
+ | |||
+ | while(1) { | ||
+ | for(i = 0; i < sizeof(colors)/ | ||
+ | ledColorSet(colors[i]); | ||
+ | delay(1000); | ||
+ | } | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Gdzie linie: | ||
+ | < | ||
+ | #define LedPinRed | ||
+ | #define LedPinGreen | ||
+ | #define LedPinBlue | ||
+ | </ | ||
+ | |||
+ | Są to nr portów w WiringPI. Można odczytać je za pomocą polecenia: "gpio readall" | ||
+ | |||
+ | Kompilujemy: | ||
+ | < | ||
+ | gcc -Wall ./ | ||
+ | </ | ||
+ | |||
+ | Po uruchomieniu dioda powinna migać na różne kolory. |