Voorbeeldprogramma
Beginnen | Hardware | Software | Voorbeeldprogramma | Inkscape & lasersnijden | Errors & Tips | Kekbot | [TrompBot Website] | Trompbots | Percussie & ritme | Fioretti programma
De Microcontroller wordt in de taal C++ geprogrammeerd. Deze taal heeft een aantal regels die je in de gaten moet houden om een goed programma te maken. Die regels zijn net zoiets als de spelling en gramatica van de Nederlandse of Engelse taal. Ze regelen hoe de taal moet gebruiken. Als je een programma maakt wat niet volgens de regels is, zal de computer het niet begrijpen en een foutmelding geven. Je moet dan je programma veranderen. Lees de regels dus eerst goed, en houd je er aan! Hieronder staan een paar programma's om te beginnen.
De basis
Dit is een leeg programma. Het doet niets, maar is wel een correct programma (zonder spelfouten).
//leeg.ino: Een leeg programma, dit doet niets
void setup()
{
// Hier komen de opdrachten die 1 keer gedaan moeten worden bij het aanzetten
}
void loop()
{
// Hier komen de opdrachten die elke keer gedaan moeten worden
}
tip: Als er op een regel twee forward slashes staan (dat ziet er zo uit: //) dan wordt alles daarna tot het einde van de regel niet gelezen door de computer. Dat is makkelijk want zo kan je commentaar in je programma zetten zodat je zelf nog weet wat je had bedoeld.
Led aan en uit
Een aantal voorbeeldprogramma's staan hier:
// knipper.ino: knipper de groene led, aan en uit, met 1 seconde ertussen.
// Voer deze instructie 1x uit bij het aanzetten
void setup()
{
pinMode(14, OUTPUT); // Schakel aansluiting (pin) nummer 14 als uitgang. Deze aansluiting is verbonden met de LED
}
// Blijf deze functie herhalen, zoalang de microcontroller aan staat
void loop()
{
digitalWrite(14, HIGH); // zet pin 14 uitgang HOOG (aan)
delay(1000); // Wacht 1 seconden (1000 milliseconden)
digitalWrite(14, LOW); // zet pin 14 uitgang LAAG (aan)
delay(1000); // Wacht 1 seconden (1000 milliseconden)
}
Dan nog een: Dit is een variatie op het eerste programma, maar maakt een wat langer patroon
// knipper2.ino: Maak een knipper patroon
// Voer deze instructie 1x uit bij het aanzetten
void setup()
{
pinMode(14, OUTPUT); // Schakel aansluiting (pin) nummer 14 als uitgang. Deze aansluiting is verbonden met de LED
}
// Blijf deze functie herhalen, zoalang er spanning op de microcontroller staat
void loop()
{
digitalWrite(14, HIGH);
delay(100);
digitalWrite(14, LOW);
delay(100);
digitalWrite(14, HIGH);
delay(200);
digitalWrite(14, LOW);
delay(200);
digitalWrite(14, HIGH);
delay(200);
digitalWrite(14, LOW);
delay(1000);
}
Schakelaar inlezen
Als je de linker schakelaar S2 indrukt, dan gaat het rode lampje uit.
// schakelaar.ino - lees een schakelaar in, en schake led aan en uit
void setup()
{
pinMode(5, INPUT_PULLUP); // drukknop, als input
pinMode(2, OUTPUT); // LED als output
}
void loop()
{
if ( digitalRead(5) == HIGH ) // als de schakelaar HOOG is
digitalWrite(2, HIGH); // zet dan de uitgang HOOG
else // anders
digitalWrite(2, LOW); // zet de uitgang LAAG
}
Een servo besturen
Sluit de servo aan op de uitgang 13 van de Launchpad. Als je het programma start gaat de servo bewegen tussen twee posities (90 graden uit elkaar) met een wachttijd van 1 seconde tussen de bewegingen.
// beweeg.ino: Beweeg een servo tussen twee posities
#include <Servo.h> // zeg de computer dat we de servo functies willen gebruiken, anders kan hij die niet vinden
Servo motor; // definieer een servo motor
// Voer deze instructie 1x uit bij het aanzetten
void setup()
{
motor.attach(13); // vebind servo met aansluitpen 11
}
// Blijf deze functie herhalen, zoalang de microcontroller aan staat
void loop()
{
motor.write(30); // beweeg naar 30 graden stand
delay(1000); // Wacht 1 seconden (1000 milliseconden)
motor.write(120); // beweeg naar 120 graden stand
delay(1000); // Wacht 1 seconden (1000 milliseconden)
}
De servo besturen met een schakelaar
// beweeg-schakelaar.ino: Beweeg een servo tussen twee posities als je op de schakelaar drukt
#include <Servo.h> // zeg de computer dat we de servo functies willen gebruiken, anders kan hij die niet vinden
Servo motor; // definieer een servo motor
void setup()
{
motor.attach(11); // vebind servo met aansluitpen 11
pinMode(5, INPUT_PULLUP);
}
void loop()
{
if ( digitalRead(5) == HIGH ) // als de schakelaar HOOG is (niet ingedrukt):
motor.write(30); // beweeg naar 30 graden stand
else // anders:
motor.write(120); // beweeg naar 120 graden stand
}