Arduino experiments
Planned experiments:
- Hello world (blink that light)
- Running light
- Console
- Servo control
- analog input
- realtime clock
- communication, I2C bus
Hello world
blink LED on pin 13.
/* hello world */
int ledpin = 13;
void setup(){
pinMode(ledpin,OUTPUT);
}
void loop(){
digitalWrite(ledpin,LOW);
delay(500);
// off for 0.5 sec
digitalWrite(ledpin,HIGH);
delay(500);
// on for 0.5 sec
}
Running light
use LED board connected to pin 8,9,10,11,12,13 (six LEDs)
each LED will be on for 250 ms
/* running light */
int ledpin[] = {8,9,10,11,12,13};
void setup(){
int i;
for(i=0; i < 6; i++){
pinMode(ledpin[i],OUTPUT);
digitalWrite(ledpin[i],HIGH);
}
}
void loop(){
int i;
for(i=0; i < 6; i++){
digitalWrite(ledpin[i],LOW);
delay(250);
digitalWrite(ledpin[i],HIGH);
}
}
Push switch to toggle light
push switch (pin 2) to toggle LED pin 13
must debounce the switch signal
#define ledpin 13
#define switch 2
bool state = LOW;
int thisread;
int lastread = HIGH;
long debounce;
void setup(){
pinMode(switch, INPUT);
pinMode(ledpin, OUTPUT);
}
void loop(){
do{
thisread = digitalRead(switch);
if( thisread == lastread) debounce = millis();
} while ( (millis() - debounce) < 50 ); // debounce
period 50 ms
if( thisread == LOW && lastread == HIGH){ // switch
is pushed
digitalWrite(ledpin,state);
state = !state;
// toggle state
}
lastread = thisread ;
// update switch state
}
< to be continued>
last update 1 Apr 2018 (no, this is definitely no an April fool)