arduino_foer_ungdomar

Lektion 2: Blink Blink Blink

Den här lektionen kallas ‘Blink Blink Blink’, eftersom det är Blink lektionen, men med tre LEDs.

Blink

\pagebreak

Här är Blinks 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.

Smiley
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

Blinka med LED på 12

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:

BlinkBlinkBlink

\pagebreak

Koppla in Blink Blink Blinkkretsen. Byt namn på variabeln led_stift till led_stift_1. och se till att det har rätt startvärde.

\pagebreak

2.8: Lösning 3

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.

Solglasögon | Knight Rider var en TV-serie med en talande bil. :————-:|:—————————————-:

Knight Rider