Lista de partes mínimas:
(1) Arduino Duemilanove (o equivalente o compatible)
(8) LED de su elección. He utilizado 5mm T1-3/4 grado 120-180 agua limpia 1500mcd puro verde de la pantalla LCD.
(8) resistencias de 1/8 watt (mínimo) de 100 ohmios. He utilizado (4) 330 ohmios 1/4 watt y (4) 450 ohmios 1/4 watt, porque eso es lo que yo tenía por ahí. No veo ninguna diferencia en brillo entre los dos.
(1) potenciometro de 10 k de su elección.
protoboard de proyecto (1), sin soldadura "empujar-en" estilo.
longitudes de 4 pulgadas (11) del cable de conexión , preferiblemente sólida con puntas estañadas. Alambre trenzado funcionará, pero es más molesto. Yo usaba cables preensamblado breadboardinging que vinieron en un kit.
No lo escribió personalmente el bosquejo, pero algo modificado de alguien para satisfacer mis necesidades. Incluye la posibilidad de añadir un botón, que yo no lo uso.
El sketch de Arduino es la siguiente:
const int buttonPin = 2;
const int ledPin1 = 13;
int buttonState = 0;
int leds [] = {3, 4, 6, 7, 8, 9, 10, 11};
#define NUMBER_OF_LEDS (sizeof(leds)/sizeof(int))
[] larson Boolean [NUMBER_OF_LEDS] = {}
{ALTA, BAJA, BAJA, BAJA, BAJA, BAJA, BAJA, BAJA},
{BAJA, ALTA, BAJA, BAJA, BAJA, BAJA, BAJA, BAJA},
{BAJA, BAJA, ALTA, BAJA, BAJA, BAJA, BAJA, BAJA},
{BAJA, BAJA, BAJA, ALTA, BAJA, BAJA, BAJA, BAJA},
{BAJA, BAJA, BAJA, BAJA, ALTA, BAJA, BAJA, BAJA},
{BAJA, BAJA, BAJA, BAJA, BAJA, ALTA, BAJA, BAJA},
{BAJA, BAJA, BAJA, BAJA, BAJA, BAJA, ALTO, BAJO},
{BAJA, BAJA, BAJA, BAJA, BAJA, BAJA, BAJA, ALTO},
{BAJA, BAJA, BAJA, BAJA, BAJA, BAJA, ALTO, BAJO},
{BAJA, BAJA, BAJA, BAJA, BAJA, ALTA, BAJA, BAJA},
{BAJA, BAJA, BAJA, BAJA, ALTA, BAJA, BAJA, BAJA},
{BAJA, BAJA, BAJA, ALTA, BAJA, BAJA, BAJA, BAJA},
{BAJA, BAJA, ALTA, BAJA, BAJA, BAJA, BAJA, BAJA},
{BAJA, ALTA, BAJA, BAJA, BAJA, BAJA, BAJA, BAJA},
};
#define marcos (sizeof(larson)/(sizeof(larson[0])))
int sensorPin = 0;
void setup() {}
pinMode (ledPin1, salida);
pinMode (buttonPin, entrada);
para (led int = 0; llevado < NUMBER_OF_LEDS; llevado ++) {}
pinMode (LED [led], salida);
}
}
void loop() {}
buttonState = digitalRead(buttonPin);
Si (buttonState == HIGH) {}
digitalWrite (ledPin1, HIGH);
}
Else {}
largo plazo = millis();
para (marco int = 0; marco < Marcos; marco ++) {}
para (led int = 0; llevado < NUMBER_OF_LEDS; llevado ++) {}
digitalWrite (LED [led], larson[frame][led]);
}
int sensorValue = map(analogRead(sensorPin), 0, 1023, 0, 1000);
mientras que (sensorValue > = (millis() - tiempo)) {}
sensorValue = analogRead(sensorPin);
}
tiempo = millis();
}
}
}