Paso 3: programación
Utiliza esta biblioteca, que proporciona una manera muy fácil para el control de nuestro display de 7 segmentos: admite decimales, letras (que no se ven muy bien en una pantallita)
Incluso hay un PDF que describe cómo hacerlo!
Este esbozo utiliza interrupciones para que el Arduino pueda esperar para serie y utilizar la pantalla. Sin eso, la pantalla inmediatamente vuelva a negro después de mostrar algo.
Si la pantalla es de cátodo común, necesita reemplazar disp.setCommonAnode(); con disp.setCommonCathode();
#include <sevenseg.h> SevenSeg disp(12,8,4,6,7,11,3); // here you put the pins that are connected to the segments // in alphabetical order : A,B,C,D,E,F,G const int numOfDigits=3; int digitPins[numOfDigits]={13,10,9}; String inputString = ""; boolean stringComplete = false void setup() { disp.setDigitPins(numOfDigits,digitPins); disp.setDPPin(5); // set the pin for the Decimal Point, if you have one disp.setCommonAnode(); // REPLACE THIS WITH disp.setCommonCathode(); IF YOUR DISPLAY IS COMMON CATHODE disp.setTimer(2); disp.startTimer(); Serial.begin(9600); } void loop() { if (stringComplete) { Serial.println(inputString); disp.write(inputString); inputString = ""; // clear the string: stringComplete = false; } } void serialEvent() { while (Serial.available()) { char inChar = (char)Serial.read(); // add it to the inputString: if(inChar != '\n') { inputString += inChar; } // if the incoming character is a newline, set a flag // so the main loop can do something about it: else { stringComplete = true; } } } ISR(TIMER2_COMPA_vect) { disp.interruptAction(); //attaches the timer to the interrupt }