// Verwijder in LOOP eerst een van de commentaren alvorens het programma uit te testen. !!! // Met dit programma kan je alle hardware van je KAEDU shield testen alvorens met programmeren aan de slag te gaan. // Gebruik het gedeelte voor SETUP en SETUP zelf telkens als basis van je eigen programma, dit bespaart je zeer veel typewerk. // Op deze manier geraak je ook gewend aan de namen die we de componenten gegeven hebben zodat je deze consequent kan gebruiken. // Zo kan je in communicatie met anderen altijd zeer duidelijk laten weten over welke component je spreekt. int LEDG1 = 2; int LEDO1 = 18; int LEDR1 = 17; int LEDG2 = 5; int LEDO2 = 4; int LEDR2 = 3; int LEDIR = 7; // Als je gebruik wil maken van de 7 segmenten verwijder dan de commentaar onder deze lijn en zet de code in commentaar boven deze lijn. /* int SEGA = 17; int SEGB = 18; int SEGC = 2; int SEGD = 3; int SEGE = 4; int SEGF = 5; int SEGG = 6; int SEGDP = 7; */ int SERVO = 6; int BUZZ = 13; int SWITCH = 8; int BUTTON1 = 9; int BUTTON2 = 10; int BUTTON3 = 11; int BUTTON4 = 12; int ToestandSWITCH = 0; int ToestandBUTTON1 = 0; int ToestandBUTTON2 = 0; int ToestandBUTTON3 = 0; int ToestandBUTTON4 = 0; int TRIM = A0; int NTC = A1; int LICHTDET = A2; void setup() { pinMode(LEDG1,OUTPUT); pinMode(LEDO1,OUTPUT); pinMode(LEDR1,OUTPUT); pinMode(LEDG2,OUTPUT); pinMode(LEDO2,OUTPUT); pinMode(LEDR2,OUTPUT); pinMode(LEDIR,OUTPUT); // Als je gebruik wil maken van de 7 segmenten verwijder dan de commentaar onder deze lijn en zet de code in commentaar boven deze lijn. /* pinMode(SEGA,OUTPUT); pinMode(SEGB,OUTPUT); pinMode(SEGC,OUTPUT); pinMode(SEGD,OUTPUT); pinMode(SEGE,OUTPUT); pinMode(SEGF,OUTPUT); pinMode(SEGG,OUTPUT); pinMode(SEGDP,OUTPUT); */ pinMode(SERVO,OUTPUT); pinMode(BUZZ,OUTPUT); pinMode(SWITCH,INPUT); pinMode(BUTTON1,INPUT); pinMode(BUTTON2,INPUT); pinMode(BUTTON3,INPUT); pinMode(BUTTON4,INPUT); pinMode(TRIM,INPUT); // is niet verplicht maar kan geen kwaad om te vermelden. pinMode(NTC,INPUT); // is niet verplicht maar kan geen kwaad om te vermelden. pinMode(LICHTDET,INPUT); // is niet verplicht maar kan geen kwaad om te vermelden. Serial.begin(9600); // dit is nodig om de test met de analoge inputs te kunnen realiseren, dankzij deze regel werkt de serial monitor. } void loop() { // Testen van de LED's : verwijder de commentaar rond deze code, compileer het programma en download het. // PS : Het block commentaar verwijderen kan eenvoudig door voor beide lijnen // te zetten. Zo is het ook eenvoudig om de commentaar terug // te activeren door de // voor de block commentaar tekens te verwijderen. // Als alles correct is aangesloten (jumpers) en goed gesoldeerd dan zullen de 6 leds oplichten voor 1 seconde en doven voor 1 seconde /* digitalWrite(LEDG1,HIGH); digitalWrite(LEDO1,HIGH); digitalWrite(LEDR1,HIGH); digitalWrite(LEDG2,HIGH); digitalWrite(LEDO2,HIGH); digitalWrite(LEDR2,HIGH); // Door deze test van het printplaatje leer je ook meteen dat digitalWrite(NAAM,HIGH); de pin die overeenkomt met de NAAM hoog maakt en dus actief. delay(1000); // Het programma wacht 1000ms door de instructie delay, dit komt overeen met 1 seconde. digitalWrite(LEDG1,LOW); digitalWrite(LEDO1,LOW); digitalWrite(LEDR1,LOW); digitalWrite(LEDG2,LOW); digitalWrite(LEDO2,LOW); digitalWrite(LEDR2,LOW); // Door deze test van het printplaatje leer je ook meteen dat digitalWrite(NAAM,LOW); de pin die overeenkomt met de NAAM laag maakt en dus NIET actief. delay(1000); // Het programma wacht 1000ms door de instructie delay, dit komt overeen met 1 seconde. */ // Testen van de drukknoppen : verwijder de commentaar rond deze code, compileer het programma en download het. // Als SWITCH1 aan staat moet GROENE LED 1 werken, anders niet. // Ook voor BUTTON1 tot en met BUTTON4 zullen de LEDS werken bij indrukken en niet werken bij loslaten. Het gaat hier over LED01, LEDR1, LEDG2 en LED02 respectievelijk. /* ToestandSWITCH = digitalRead(SWITCH); ToestandBUTTON1 = digitalRead(BUTTON1); ToestandBUTTON2 = digitalRead(BUTTON2); ToestandBUTTON3 = digitalRead(BUTTON3); ToestandBUTTON4 = digitalRead(BUTTON4); // Door deze test van het printplaatje leer je ook meteen dat digitalRead(NAAM); de toestand van de pin gaat bekijken en deze opslaat in Toestand... . digitalWrite(LEDG1,ToestandSWITCH); // NC = Normaal gesloten = AAN , NO = Normaal open = UIT digitalWrite(LEDO1,ToestandBUTTON1); digitalWrite(LEDR1,ToestandBUTTON2); digitalWrite(LEDG2,ToestandBUTTON3); digitalWrite(LEDO2,ToestandBUTTON4); // Door deze test van het printplaatje leer je ook meteen dat digitalWrite(NAAM,Toestand...); ervoor zorgt dat de uitgang de toestand van de ingang zal overnemen // Als telkens bij het indrukken van de knop de overeenkomstige LED aan gaat en bij het verplaatsen van de SWITCH naar NC de LED aanblijft dan is de test geslaagd. */ // Testen van de analoge inputs : verwijder de commentaar rond deze code, compileer het programma en download het. // Bij deze test heb je de serial monitor nodig, deze open je nadat je het programma gedownload hebt via HULPMIDDELEN - SERIELE MONITOR of via de toetsencombinatie CTRL + SHIFT + M // Deze test geeft je de digitale waarde die overeenkomt met de spanning aan de analoge pinnen. // Zet telkens 2 lijnen (Serial.print en println) uit commentaar en compileer en download en bekijk de serial monitor. Zet daarna de lijnen terug in commentaar en verwijder 2 andere lijnen commentaar. /* int ToestandTRIM = analogRead(TRIM); int ToestandTEMP = analogRead(NTC); int ToestandLICHT = analogRead(LICHTDET); // hier leer je dat je met analogRead de spanning op de A pinnen kan inlezen en een getal tussen 0 en 1023 zal terugkrijgen in de variabele Toestand... // Toestand van de Potentiometer op de monitor plaatsen Serial.print("De waarde van A0 (TRIMMER) = "); // hier leer je dat met Serial.print de tekst tussen "" op je serial monitor zal verschijnen Serial.println(ToestandTRIM); // hier leer je dat zonder aanhalingstekend de waarde zal verschijnen ipv de tekst en dan door toevoegen van de ln een nieuwe lijn begint // Toestand van de Temperatuurmeter op de monitor plaatsen. //Serial.print("De waarde van A1 (NTC) = "); //Serial.println(ToestandTEMP); // Toestand van de Lichtsensor op de monitor plaatsen. //Serial.print("De waarde van A2 (LICHTDET) = "); //Serial.println(ToestandLICHT); // Het meten van Lichtreflectie //digitalWrite(LEDIR,HIGH); //Serial.print("De waarde van A2 (LICHTDET MET REFLECTIE IR ) = "); //Serial.println(ToestandLICHT); delay(1000); */ // Testen van de buzzer : verwijder de commentaar rond deze code, compileer het programma en download het. // Het eerste getal is de frequentie van het geluid in Hz, in dit geval 100HZ. // Het tweede getal is de tijd dat de toon zal weerklingen, in dit geval 1000ms dus 1 seconde. // De delay zorgt ervoor dat de toon ook even niet hoorbaar is (aangenamer tijdens het testen) en dit geval 5000ms dus 5 seconden // Experimenteer gerust met de frequentie en tijdsduur door de getallen aan te passen. // Vergeet wel niet dat telkens na een aanpassing je moet compileren en downloaden. /* tone(BUZZ,000,1000); delay(5000); */ }