Paso 3: Subir de código op je arduino
De descarga código zal werken directa cuando je de bouw precies hetzelfde hebt gedaan als hierboven es aangegeven.
COMENZAR VAN DE CÓDIGO *** / / /
/*
Entrada analógica, analógico de salida, salida serie
Lee un pin de entrada analógico, asigna el resultado a un rango de 0 a 255 y el resultado se utiliza para establecer la modulación de anchura de impulso (PWM) de un pin de salida. También imprime los resultados en el monitor serie.
El circuito: * potenciómetro conectado al pin analógico 0. La patilla central del potenciómetro va al pin analógico. pernos laterales del potenciómetro van a + 5V y tierra * LED conectado desde el pin digital 9 a tierra
creado el 29 de diciembre de 2008 modificado el 09 de abril de 2012 por Tom Igoe
Este ejemplo de código es de dominio público.
*/
#include
Servo myservo;
Estas constantes no va a cambiar. Son utilizados para dar nombres / / a los pines utilizados: const int analogInPin = A0; Clavija de entrada analógica que el potenciómetro se une a const int analogOutPin = 9; Pin de salida analógica que el LED está conectado a
int sensorValue = 0; valor leído desde el pote int outputValue = 0; salida de valor para el PWM (salida analógica)
int pos = 0; bool sol = false; pantalla de bool = false;
void setup() {/ / inicializar comunicaciones serie a 9600 bps: Serial.begin(9600);}
void loop() {/ leer el análogo valor: sensorValue = analogRead(analogInPin); / / mapa de la gama de la salida analógica: outputValue = mapa (sensorValue, 0, 1023, 0, 255); / / cambio de análogo valor: analogWrite (analogOutPin, outputValue);
imprimir los resultados en el monitor serial: Serial.print ("sensor ="); Serial.Print(sensorValue); Serial.Print ("\t salida ="); Serial.println(outputValue);
Si (sensorValue < = 850) {//sun es brillante, TURN IT ON if(pos == 0) {myservo.attach(10);} sol = true;} si (sensorValue > = 980) {//clouds incominggg if(pos > 760) {myservo.attach(10);} sol = false;}
Si (sol == true & & pantalla == false) {pos ++; / / ++ la posición myservo.write(pos); Serial.Print(POS); if(POS >760) {pantalla = true; myservo.detach();}} Si (sol == false & & pantalla == true) {pos--; myservo.write(pos); if(pos == 0) {pantalla = false; myservo.detach();}}
esperar 2 milisegundos antes del bucle siguiente / / para el convertidor de analógico a digital resolver / / después de la última lectura: delay(2);
}
EINDE VAN DE CÓDIGO *** / / /