In questo esercizio, regolando il voltaggio con il timmer, accendiamo e spegniamo in sequenza i diodi LED partendo dal primo fino al decimo e viceversa.
Sketch dell'esercizio
// Esercizio 1 - ANALOGICO
// these constants won't change:
const int analogPin = A1; // the pin that the potentiometer is attached to
const int ledCount = 10; // the number of LEDs in the bar graph
int ledPins[] = {
13, 12, 11, 10, 9, 8, 7, 6, 5, 4
}; // an array of pin numbers to which LEDs are attached
void setup() {
// loop over the pin array and set them all to output:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// read the potentiometer:
int sensorReading = analogRead(analogPin);
// map the result to a range from 0 to the number of LEDs:
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
// loop over the LED array:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
// if the array element's index is less than ledLevel,
// turn the pin for this element on:
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
// turn off all pins higher than the ledLevel:
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}
In questo esercizio, regolando il voltaggio con il trimmer, accendendo e spegniamo in sequenza solamente un diodo LED dal primo fino al decimo e viceversa.
Sketch dell'esercizio
// Esercizio 2 - ANALOGICO
// these constants won't change:
const int analogPin = A1; // the pin that the potentiometer is attached to
const int ledCount = 10; // the number of LEDs in the bar graph
int last = 0;
int thisLed;
int ledPins[] = {
13, 12, 11, 10, 9, 8, 7, 6, 5, 4
}; // an array of pin numbers to which LEDs are attached
void setup() {
// loop over the pin array and set them all to output:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// read the potentiometer:
int sensorReading = analogRead(analogPin);
// map the result to a range from 0 to the number of LEDs:
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount-1);
if(ledLevel != last)
{
for (thisLed = 0; thisLed < ledCount; thisLed++)
{
digitalWrite(ledPins[thisLed], HIGH);
}
digitalWrite(ledPins[ledLevel], LOW);
last = ledLevel;
}
}
In questo esercizio, regolando il voltaggio con il trimmer, regoliamo la velocità di scorrimento sequenziale dei dieci diodi Led.
Sketch dell'esercizio
// Supercar 3 - ANALOGICO
int i;
const int analogPin = A1; // the pin that the potentiometer is attached to
int direzione = 0;
int tempo= 80;
void setup(){
int i;
pinMode (i, OUTPUT );
for (i=4; i<14; i++){
pinMode (i, OUTPUT ); //setta come output digitale
digitalWrite(i, HIGH); //spegne il led
}
}
void loop(){
tempo = analogRead(analogPin);
if (direzione == 0)
{
for(i=5;i<14;i++)
{
digitalWrite( i , LOW); //accende il pin
delay (tempo); // aspetta mezzo secondo (1 secondo = 1000 millisecondi)
digitalWrite( i , HIGH); //accende il pin
}
if ( i >= 13) direzione =1;
}
else
{
for(i=12;i>3;i--)
{
digitalWrite( i , LOW); //accende il pin
delay (tempo); // aspetta mezzo secondo (1 secondo = 1000 millisecondi)
digitalWrite( i , HIGH); //accende il pin
}
if ( i <= 4) direzione = 0;
}
}