Lekce 3 - Připojíme LED diodu a tlačítka

23.12.2012 18:35

Dnes si k Arduinu připojíme nějakou LED diodu a poté i dvě tlačítka. Otestujeme si jak digitální výstup, tak i digitální vstup. K našim hrátkám budeme potřebovat:

  • Arduino
  • nepájivé kontaktní pole
  • 2 tlačítka
  • LED dioda
  • 1ks rezistor 1,2 kΩ
  • 2ks rezistor 10 kΩ
  • propojovací vodiče 

 

     Výrobu propojovacích vodičů jsem si ukázali v předchozí lekci. LED diodu můžete použít liibovolnou. Z tlačítek vzhledem k použití se mi nejvíce osvědčil typ P-DT6SW z nabídky firmy GME za cenu cca 13 Kč. Mikrospínače s nepajivém kontaktním poli často nedrží a je nutná jejich dodatečná úprava.

     Po zapojení LED diody podle obrázku níže si naše Arduino napragramuje tak, aby naše dioda blikala.

     Led diodu jsme připojili na digitální výstup 10 přes odpor 1,2kOhmu k GND a to z důvodu, že LED dioda není stavěná na 5V, ale na 2,1V. Teď k samotnému programu pro blikání LED. 


int LEDka = 10;                 // LED připojena na pin 10

void setup()
  {
    pinMode(LEDka, OUTPUT);    // pin 10 nastaven jako výstup 
  }

void loop()
{
  digitalWrite(LEDka, HIGH);    // pin 10 na vysokou úroveň
  delay(500);                   // čekej 500ms
  digitalWrite(LEDka, LOW);     // pin 10 na nízkou úroveň
  delay(500);                   // čekej 500ms
}

Těm, co se LED diaoda rozblikala gratuluji a nyní poustoupíme k další části tutoriálu a připojíme tlačitko podle následujícího schématu.

Omlouvám se za chybu na obrázku, tlačítko musí být připojeno k +5V a ne k GND !!!!

Program:

int LEDka = 10; // LED připojena na pin 10

int TLAC = 9;   // Tlacitko pripojeno na pin 9

 

void setup()
  {
    pinMode(LEDka, OUTPUT); // pin 10  nastaven jako výstup 
    pinMode(TLAC, INPUT);   // pin 9  nastaven jako vstup
  }
void loop()
{
  /*
  pomocí funkce digitalRead( pin )
  přečteme hodnotu a pomocí funkce 
  digitalWrite(pin, hodnota) ji zapišeme na pin,
  kde je připojena LEDka 
  
  alternativní zápis je:
  val = digitalRead(TLAC);
  digitalWrite(LEDka, val);  
  */
 
  digitalWrite(LEDka, digitalRead(TLAC));
}

 Jak již jste určitě vyzkoušeli LED dioda svítí pouze, když je zmáčkuté tlačítko. Nyní program trošku zmodifuikujeme a tlačítko nyní bude mít funkci tzv. START/STOP. Stiskem LEDku rozsvítíme a dalším stiskem diodu zhasneme.

 

int LEDka = 10; // LED připojena na pin 10
int TLAC = 9;  // Tlacitko pripojeno na pin 9
boolean svetlo = false; // Pomocná hodnota světlo
 
 
void setup()
  {
    pinMode(LEDka, OUTPUT);    // pin 10  nastaven jako výstup 
    pinMode(TLAC, INPUT);    // pin 9  nastaven jako vstup
    
  }
void loop()
{
  // když je hodnota na tlačítku vysoká (true)
  if (digitalRead(TLAC))
  {
   //když je světlo, udělej tmu a naopak
   if (svetlo) svetlo = false; else svetlo = true;
   //zapiš hodnotu světla na výstup
   digitalWrite(LEDka, svetlo);
   //dokud je tlačítko sepnuté čekej 50ms
   while (digitalRead(TLAC)) delay(50);
  }
}
 
 
Video jak by mělo tlačítko fungovat v obou případech:

Zpět

Diskusní téma: Lekce 3 - Připojíme LED diodu a tlačítka

Datum
Vložil
Titulek

nebliká mi dioda na pinu deset

vložil jsem do arduina tenhle program a nic!

int LED = 10;

void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}

Datum
Vložil
Titulek

Re: nebliká mi dioda na pinu deset

no program máš správně. Asi bude.problem v zapojení. Nebo otočená LED?

Datum
Vložil
Titulek

Arduino Due

Dobrý den,

nedávno jsem si zakoupil Arduino Due s tím, že bych si udělal domácí automatizaci spolu s jednoduchým zapezpečovacím systémem. Chtěl jsem použít tento jednoduchý skic. viz int LEDka = 10; // LED připojena na pin 10
int TLAC = 9; // Tlacitko pripojeno na pin 9

void setup()
{
pinMode(LEDka, OUTPUT); // pin 10 nastaven jako výstup
pinMode(TLAC, INPUT); // pin 9 nastaven jako vstup
}
void loop()
{
/*
pomocí funkce digitalRead( pin )
přečteme hodnotu a pomocí funkce
digitalWrite(pin, hodnota) ji zapišeme na pin,
kde je připojena LEDka

alternativní zápis je:
val = digitalRead(TLAC);
digitalWrite(LEDka, val);
*/

digitalWrite(LEDka, digitalRead(TLAC));
}


Více zde: https://arduino8.webnode.cz/news/lekce-3-pripojime-ledku-a-tlacitka/



akorát mám problém, že Led dioda mi svítí neustále, nevíte v čem může být chyba. Mimochodem zkoušel jsem to s Unem a tam to jede v pořádku jenom s tím Due mám problém. Nevíte v čem by mohla být chyba ? Děkuji za odpověď.

Datum
Vložil
Titulek

Rezistor

Mohl bych se zeptat, jak se došlo k velikosti odporu 1200 ohmů? Nějak se k tomu nemůžu dopočítat. Jaký byl uvažován proud?

Datum
Vložil
Titulek

Re: Rezistor

Pardon, už jsem to našel, 2mA.

Datum
Vložil
Titulek

Re: Re: Rezistor

Jak se dívám, já jsem to teda nenašel. LEDka by musela mít odběr 2mA, což je nějak málo. Ne?

Datum
Vložil
Titulek

Re: Re: Re: Rezistor

Pravděpodobně jde o nizkopříkonovou LED(2mA). Při použití běžné LED (20mA) je třeba snížit odpor na 150 ohm jinak se nerozsvítí.

Datum
Vložil
Titulek

opačne

Prosím neviete prečo mi to svieti opačne ? Ak nemám stlačené tlačítko, tak mi ledka svieti, ak stlačím tlačítko ledka zhasne. Ďakujem.

int LEDka = 10; // LED připojena na pin 10
int TLAC = 9; // Tlacitko pripojeno na pin 9
void setup()
{
pinMode(LEDka, OUTPUT); // pin 10 nastaven jako výstup
pinMode(TLAC, INPUT); // pin 9 nastaven jako vstup
}
void loop()
{
digitalWrite(LEDka, digitalRead(TLAC));
}

Datum
Vložil
Titulek

Re: opačne

Kód je v pořádku, pravděpodobně máš špatně zapojené tlačítko. Má být připojené na +5V.

Datum
Vložil
Titulek

Good info

Very nice site! cheap goods https://aixypeo2.com/ayaoka/4.html

<< 1 | 2 | 3 | 4 | 5 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.