Digitala inputs

På samma sätt som du kan skriva HIGH eller LOW till en digital pin på Arduinon, kan du läsa HIGH eller LOW från en digital sensor kopplad till en digital pin. Digitala inputs kan, precis som digitala outputs, bara ha två tillstånd.

Exempel 2.7

En enskild labbkabel kan demonstrera teorin bakom digitala inputs. Du kommer att skriva ett program som sätter på eller stänger av den på Arduinon monterade LED:n, beroende på vad som läses på den digitala pinen där labbkabeln är kopplad.

Material

  • 1 Arduino Uno
  • 1 labbkabel

Instruktioner

  1. Koppla en labbkabel till digital pin 5
  2. Ladda upp den här koden:

Resultat

Du ska nu växla mellan att koppla labbkabelns lösa ände till 5V och GND.  Kopplad till 5V borde LED:n sättas på, kopplad till GND borde LED:n stängas av. Notera att det inte kommer att fungera perfekt.

Nya kommandon

  • pinMode(pinNumber, INPUT): konfigurerar digitala pin pinNumber att uppträda som en input.
  • digitalRead( pinNumber): läser värdet från den digitala pinen pinNumber, antingen HIGH eller LOW.

Repetition:

  • if( test ){ statements }: Kollar om test är sant eller falskt. Om det är sant kommer koden innanför klammerparentesen utföras. Om falskt hoppar programmet till koden efter klammerparentesen och utför denna.
  • value1 == value2: Jämför value1 och value2. Om värdena är lika returneras sant, om de inte är lika returneras falskt. Det dubbla likhetstecknet kallas för en operatör.

Så här fungerar det

  • Två variabler deklareras, ledPin och inputPin. ledPin tilldelas värdet 13, och inputPin värdet 5.
  • setup() konfigureras pin 13 som en output och pin 5 som en input.
  • loop() läses pin 5:s tillstånd av, samtidigt kollas om tillsståndet är lika med HIGH.
  • Om kabeln är kopplad till 5V är avläsningen HIGH, och LED:n sätts på genom att skriva HIGH till pin 13.
  • Om kabeln är kopplad till GND är avläsningen LOW, och LED:n stängs av genom att skriva LOW till pin 13.
  • loop() fortsätter att upprepas vilket betyder att tillståndet på pin 5 kontinuerligt kollas av.

Knapp

En labbkabel kanske är ett bra sätt att förklara teorin bakom digitala inputs, men det är inte en pålitilig input för dina projekt. Det är bättre att introducera knappen. Med en Arduino kan du läsa två olika tillstånd från en knapp, HIGH eller LOW.

I nästa exempel kommer du att  använda en TinkerKit-knapp. TinkerKit-komponenter gör det lättare för dig att göra kretsar, då de redan är små kretsar i sig med elektroniska komponenter som behövs, som resistorer.

Exempel 2.8

Det här exemplet gör samma sak som det tidigare, men istället för att använda en labbkabel kommer du nu att använda en TinkerKit-knapp.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 TinkerKit-knapp
  • 1 TinkerKit-kabel

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla TinkerKit-knappen till D9 med TinkerKit-kabeln.
  3. Ladda upp den här koden:

Resultat

Du bör nu trycka på knappen. LEDn: bör sättas på när du trycker på knappen, och stängas av när du släpper på knappen.

Så här fungerar det

  • I det här exemplet tilldelas inputPin värdet 9, siffran på den digitala pin till vilken TinkerKit-knappen är kopplad.
  • setup() konfigureras pin 13 som en output och pin 9 som en input.
  • loop() läses pin 9:s tillstånd av och kontrolleras samtidigt om det är lika med HIGH.
  • Om du trycker på knappen är avläsningen HIGH och LED:n sätts på.
  • Om du släpper på knappen är avläsningen LOW och LED:n stängs av.
  • loop() fortsätter att upprepas, vilket betyder pin 9:s tillstånd kontinuerligt  kontrolleras.

Lär genom att göra

  • Skriv ett program som spelar upp ljud när du trycker på en knapp.
  • Lägg till en LED som blinkar när du trycker på knappen.
Tänk på: D9 är kopplat till digitala pin 9. Om du har kopplat någonting till D9 kan du därför inte använda digitala pin 9 till någonting annat.