Stap 3: programmeren
Ik gebruikte deze bibliotheek, waarin een heel gemakkelijke manier om de controle van onze 7-segment display: het ondersteunt decimale komma, brieven (die ziet er geweldig uit op een dergelijke kleine scherm)
Er is zelfs een PDF met een beschrijving van hoe het te doen!
Deze sketch gebruikt Interrupts zodat de Arduino kan voor Serial wachten en gebruik van het display. Zonder dat zou het scherm direct weer op zwart na het tonen van iets.
Als uw beeldscherm gemeenschappelijke kathode is, moet u ter vervanging van de disp.setCommonAnode(); met 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 }