Étape 3: Téléchargement de code op je arduino
De volgende code zal werken direct wanneer je de bouw precies hetzelfde hebt gedaan als hierboven est aangegeven.
BEGIN VAN DE CODE *** / / /
/*
Entrée analogique, analogique, de sortie sortie série
Lit une broche d’entrée analogique, mappe le résultat sur une plage de 0 à 255 et utilise le résultat pour définir la pulsewidth modulation (PWM) d’une broche de sortie. Imprime également les résultats de la série monitor.
Le circuit: * potentiomètre connectée à la broche analogique 0. Goupille de centrage du potentiomètre va à la broche analogique. épingles à côté du potentiomètre aller au + 5V et la masse * LED connectée de broche numérique 9 à terre
créé le 29 décembre 2008 modifié le 9 avril 2012 par Tom Igoe
Cet exemple de code est dans le domaine public.
*/
#include
Servo myservo ;
Ces constantes ne changeront pas. Ils sont habitués à donner des noms / / aux broches utilisées : const int analogInPin = A0 ; Broche d’entrée analogique si le potentiomètre est fixé au const int analogOutPin = 9 ; Broche de sortie analogique relié à la LED
int sensorValue = 0 ; valeur lue de la marmite int outputValue = 0 ; sortie de valeur pour le PWM (sortie analogique)
int pos = 0 ; bool soleil = false ; bool écran = false ;
void setup() {/ / initialiser la communication série à 9600 bits/s: Serial.begin(9600);}
void loop() {/ / lecture de l’analogique en valeur : sensorValue = analogRead(analogInPin); / / mapper à la gamme de la sortie analogique : outputValue = carte (sensorValue, 0, 1023, 0, 255); / / changer l’analogique valeur : analogWrite (analogOutPin, outputValue) ;
imprimer les résultats de la série monitor : Serial.print ("capteur =") ; Serial.Print(sensorValue) ; Serial.Print ("\t sortie =") ; Serial.println(outputValue) ;
Si (sensorValue < = 850) {//sun brille, il allume if(pos == 0) {myservo.attach(10);} Dim = true;} si (sensorValue > = 980) {//clouds incominggg if(pos > 760) {myservo.attach(10);} Dim = false;}
Si (soleil == true & & écran == false) {pos ++; / / ++ la position myservo.write(pos) ; Serial.Print(POS) ; if(pos >760) {écran = true ; myservo.detach();}} Si (soleil == false & & écran == true) {pos--; myservo.write(pos) ; if(pos == 0) {écran = false ; myservo.detach();}}
attendre 2 millisecondes avant la prochaine boucle / / pour le convertisseur analogique-numérique à régler / / après la dernière lecture : delay(2) ;
}
EINDE VAN DE CODE *** / / /