Operácie

Programovanie AVR v jazyku C: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 7: Riadok 7:




Jedno tlačítko a jedna LED
<tabs><tab>
<source lang="arduino">
/* Pripojenie periferii k vyvojovej doske Arduino:
*  LED Diody  LED1 - D13 - PB5 (zabudovana)
*            LED2 - D7  - PD7
*            LED3 - A3/D17  - PC3
*  Tlacitka  TLAC1 - D12 - PB4
*            TLAC2 - D6  - PD6
*            TLAC3 - A2/D16  - PC2
*/
#define LED1  13 
#define LED2  7
#define LED3  17
#define TLAC1  12
#define TLAC2  6
#define TLAC3  16
int State;
void setup() {
  State = 1;
 
  pinMode(LED1, OUTPUT);
  pinMode(TLAC1, INPUT_PULLUP);
  pinMode(LED2, OUTPUT);
  pinMode(TLAC2, INPUT_PULLUP);
  pinMode(LED3, OUTPUT);
  pinMode(TLAC3, INPUT_PULLUP);
 
}
void loop() {
  if (digitalRead(TLAC1))
    digitalWrite(LED1, LOW);
  else
    digitalWrite(LED1,HIGH);
 
/* potialto je to pre studentov, ako ukazka, pripadne to iste s TLAC2 a TLAC 3 ako demo, ze im to dobre funguje. To
*  co nasleduje dalej, je uz riesenie R-S klopneho obvodu. S jednym tlacitkom az ked budeme vediet osetrit zakmity
*/
  if ( (State==1) && !digitalRead(TLAC3))
    {
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      State=2;
      delay(1);
    }
  else if ( (State==2) && !digitalRead(TLAC3) )  // na dve tlacitka, teda ak je tu TLAC3 to funguje dobre, na jedno (zmena na TLAC2) nahodne, pretoze nemame osetrene zakmity
    {
      digitalWrite(LED2,HIGH);
      digitalWrite(LED3,LOW);
      State=1;
      delay(1);
    }
  /*
  if (digitalRead(TLAC3))
    digitalWrite(LED3, LOW);
  else
    digitalWrite(LED3,HIGH);
    */
}
</source>
</tab></tabs>
== Literatúra ==
== Literatúra ==



Verzia z 15:04, 21. január 2021

Zatial aspon referencia[REF 1]


Úloha:

Na cvičení predvedieme pripojenie tlačítka, ktoré bude ovládať jednu LED diódu. Vašou úlohou bude pripojiť dve externé diódy a dve tlačítka a spraviť z nich preklápací R-S obvod.


Jedno tlačítko a jedna LED

/* Pripojenie periferii k vyvojovej doske Arduino:
 *  LED Diody  LED1 - D13 - PB5 (zabudovana)
 *             LED2 - D7  - PD7
 *             LED3 - A3/D17  - PC3
 *  
 *  Tlacitka  TLAC1 - D12 - PB4
 *            TLAC2 - D6  - PD6
 *            TLAC3 - A2/D16  - PC2
 */

#define LED1  13   
#define LED2  7
#define LED3  17

#define TLAC1  12
#define TLAC2  6
#define TLAC3  16

int State;

void setup() {

   State = 1;
   
   pinMode(LED1, OUTPUT);
   pinMode(TLAC1, INPUT_PULLUP);

   pinMode(LED2, OUTPUT);
   pinMode(TLAC2, INPUT_PULLUP);
   pinMode(LED3, OUTPUT);
   pinMode(TLAC3, INPUT_PULLUP);

   
}

void loop() {

   if (digitalRead(TLAC1))
     digitalWrite(LED1, LOW);
   else
     digitalWrite(LED1,HIGH);
  
/* potialto je to pre studentov, ako ukazka, pripadne to iste s TLAC2 a TLAC 3 ako demo, ze im to dobre funguje. To 
 *  co nasleduje dalej, je uz riesenie R-S klopneho obvodu. S jednym tlacitkom az ked budeme vediet osetrit zakmity
 */
   if ( (State==1) && !digitalRead(TLAC3))
     {
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      State=2;
      delay(1);
     }
   else if ( (State==2) && !digitalRead(TLAC3) )  // na dve tlacitka, teda ak je tu TLAC3 to funguje dobre, na jedno (zmena na TLAC2) nahodne, pretoze nemame osetrene zakmity
     {
      digitalWrite(LED2,HIGH);
      digitalWrite(LED3,LOW);
      State=1;
      delay(1);
     }

   /*
   if (digitalRead(TLAC3))
     digitalWrite(LED3, LOW);
   else
     digitalWrite(LED3,HIGH);

     */
}

Literatúra

  1. AVR035: Efficient C Coding for AVR. Application note.