Den här lektionen kallas ‘Blink Blink Blink’, eftersom det är Blink lektionen, men med tre LEDs.
\pagebreak
Här är Blink
s kod på ett annat sätt:
const int led_stift = 13;
void setup()
{
pinMode(led_stift, OUTPUT);
}
void loop()
{
digitalWrite(led_stift, HIGH);
delay(1000);
digitalWrite(led_stift, LOW);
delay(1000);
}
led_stift
kallas en variabel: en plats i datorns minne med ett namn.
const int led_stift = 13; |
‘Kära dator, kom ihåg ett heltal som heter led_stift med startvärdet 13.’ |
\pagebreak
Anslut Blinkkretsen (ser uppåt) till stift 12 och ändra koden så att den blinkar.
\pagebreak
Du behöver bara ändra en rad:
const int led_stift = 12;
void setup()
{
// ...
}
void loop()
{
// ...
}
Skapa en ny variabel för väntetiden, kallad vantetid
, själv.
vantetid
är ett heltal med initialt värde 1000
.
Använd vantetid
som värde i delay
.
| Smart! Om du läser vantetid
vet du vad det är till för. Vid 1000
vet du inte det
:————-:|:—————————————-:
\pagebreak
// ... [ange led_stift att vara 12]
const int vantetid = 1000;
void setup()
{
// ...
}
void loop()
{
// ... [sätter spänning på led_stift]
delay(vantetid);
// ... [stanger av spänning från led_stift]
delay(vantetid);
}
| // ... [nåt]
betyder ‘koden du redan har där som handlar om vad som står inom hårdparentes’
:————-:|:—————————————-:
Nu är det dags att ansluta Blink Blink Blink
:
\pagebreak
Koppla in Blink Blink Blink
kretsen.
Byt namn på variabeln led_stift
till led_stift_1
.
och se till att det har rätt startvärde.
\pagebreak
const int led_stift_1 = 11;
// ... [väntetid]
void setup()
{
pinMode(led_stift_1, OUTPUT);
}
void loop()
{
digitalWrite(led_stift_1, HIGH);
// [vänta vantetid millisekunder]
digitalWrite(led_stift_1, LOW);
// [vänta vantetid millisekunder]
}
| Programmerare använder många variabler eftersom det gör koden lättare att förstå och ändra. :————-:|:—————————————-:
\pagebreak
Skapa en ny variabel led_stift_2
.
Få först den första LEDen att tändas och släckas,
få sedan den andra LEDen tändas och släckas efter den första.
| Sättet att skriva, med “_” i stället för mellanslag t.ex. ‘led_stift_2’ kallas ‘snake case’: ‘snake’ är engelska för orm :————-:|:—————————————-:
| Skulle du skriva pinLed2
, heter det ‘camel case’: ‘camel’ är engelska för kamel
:————-:|:—————————————-:
| Jag tänker båda är lika bra :————-:|:—————————————-:
\pagebreak
const int led_stift_1 = 11;
const int led_stift_2 = 10;
// ...
void setup()
{
pinMode(led_stift_1, OUTPUT);
pinMode(led_stift_2, OUTPUT);
}
void loop()
{
digitalWrite(led_stift_1, HIGH);
// ... [vänta vantetid millisekunder]
digitalWrite(led_stift_1, LOW);
// ... [vänta vantetid millisekunder]
digitalWrite(led_stift_2, HIGH);
// ... [vänta vantetid millisekunder]
digitalWrite(led_stift_2, LOW);
// ... [vänta vantetid millisekunder]
}
\pagebreak
Skapa en tredje variabel led_stift_3
.
Få nu alla lampor blinka samtidigt: alla på, sedan alla av.
| Det här är ganska mycket att skriva! Senare får du lära dig hur detta kan göras smartare :————-:|:—————————————-:
| Korrekt! Arrays låter dig lagra flera tal i en variabel :————-:|:—————————————-:
\pagebreak
// ... [skapa vantetid, led_stift_1 och led_stift_2]
const int led_stift_3 = 9;
void setup()
{
// ... [led_stift_1 och led_stift_2 avger spänning]
pinMode(led_stift_3, OUTPUT);
}
void loop()
{
// ... [sätter spänning på LED 1 och 2]
digitalWrite(led_stift_3, HIGH);
// ... [vänta vantetid millisekund]
// ... [stäng av spänning på LED 1 en 2]
digitalWrite(led_stift_3, LOW);
// ... [vänta vantetid millisekund]
}
\pagebreak
Få nu LEDs lysa i ett ‘Knight Rider-mönster’: 1-2-3-2. Det måste alltid finnas exakt en LED som lyser.
| Knight Rider var en TV-serie med en talande bil. :————-:|:—————————————-: