Paso 6: Código de Arduino
Copie este código en el IDE de Arduino y subirlo a tu Arduino.
Parpadeará el tri-color LED conectada a la RaspberryPi a través de un ciclo (rojo, verde, azul, amarillo, magenta, cian, blanco) cinco veces. A continuación se le enviará señales de modulación de ancho de pulso (PWM) a desaparecer el LED en y hacia fuera, primero rojo, luego verde y finalmente azul, para demostrar que puede enviarse una señal PWM con los tres métodos.
//**************************************************************** // Filename: _3_Way.ino // // The Arduino program to send signals to the 3_Way.c program // Running on the RaspberryPi. // //**************************************************************** int outpin[3]={11,10,9}; //**************************************************************** // setup() //**************************************************************** void setup() { for(int i=0;i<3;i++) pinMode(outpin[i], OUTPUT); }
//**************************************************************** // function alloff() - Sets all pins low. //**************************************************************** void alloff() { delay(500); for(int i=0;i<3;i++) digitalWrite(outpin[i], LOW); }
//**************************************************************** // blink() Blink red, green, blue, yellow, magenta, cyan, white. //**************************************************************** void blink() { for(int i=0;i<3;i++) { alloff(); digitalWrite(outpin[i], HIGH); // Red, Green, Blue. } alloff(); digitalWrite(outpin[0], HIGH); // Yellow, Red + Green. digitalWrite(outpin[1], HIGH); alloff(); digitalWrite(outpin[0], HIGH); // Magenta, Red + Blue. digitalWrite(outpin[2], HIGH); alloff(); digitalWrite(outpin[1], HIGH); // Cyan, Green + Blue. digitalWrite(outpin[2], HIGH); alloff(); digitalWrite(outpin[0], HIGH); // White, Red + Green + Blue. digitalWrite(outpin[1], HIGH); digitalWrite(outpin[2], HIGH); }
//**************************************************************** // loop() //**************************************************************** void loop() { int delaytime=20; for(int i=0;i<5;i++) blink(); alloff(); delay(1000); for(int j=0;j<3;j++) { int x=1; for(int i=0;i>-1;i+=x) { analogWrite(outpin[j], i); // Fade in and out, if(i==255) x=-1; // RGB sequence. delay(delaytime); } } alloff(); delay(1000); }