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 21:08] – [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: [[https://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_External_Button]]+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: Kompilujemy:
Linia 534: Linia 534:
 ^C ^C
 </file> </file>
 +
 +==== Dioda ====
 +
 +Podłączamy wg schematu:
 +
 +{{::diode.png?direct|}}
 +
 +Czyli:
 +  * pin 22 - GPIO 6
 +  * 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  2
 +#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  2
 +#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.1608062884.txt.gz · ostatnio zmienione: 2020/12/15 21:08 przez kamil