Projektas #3: Sukurkite žadintuv? žadinant? tekant saulei

Sukurkite ir užprogramuokite grandin?, kuri valdys signalizatori? priklausomai nuo gaunamo šviesos kiekio, ir taip imituos žadintuv?, kuris žadina tekant saulei.

SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 30 min.

MEDŽIAGOS:

  • 1x fotorezistorius
  • 1x potenciometras (10 k?)
  • 1x „Build & Code UNO“ plokšt? 1x bandomoji plokšt?
  • 1x signalizatorius

Kas yra šviesos jutiklis?

Šviesos jutiklis yra rezistorius, kurio vert? kinta priklausomai nuo gaunamos šviesos, taigi, jei jis gauna daug šviesos (imituojamas saul?tekis), jis gali ?jungti signalizatori? (imituoja žadintuv?). Jei jis gauna ne tiek daug šviesos, signalizatorius liks išjungtas.

Šviesos jutiklio veikimas yra labai paprastas: jis turi vidin? rezistori?, kuris kei?ia savo vert? priklausomai nuo gaunamos šviesos. Jei pad?jote jutikl? tamsoje, jo vert? bus artima 0, o jei pad?jote jutikl? po švie?ian?ia lempa, jo vert? bus artima 1023.

JUNGTYS:

  1. Bandomoji plokšt? gaus elektros srov? iš „Build & Code UNO“ 5V kontakto, tada srov? sugr?š ? „Build & Code UNO“ ?žeminimo kontakt?. B?tent tod?l visi grandin?s ?žeminimo kontaktai turi b?ti sujungti tarpusavyje, kad tur?t? t? pa?i? ?žeminimo vert?. Paveiksle ?žeminimas yra pavaizduotas juodu kabeliu, visi ?žeminimo komponentai yra sujungti tarpusavyje ir prijungti prie plokšt?s ?žeminimo. Raudonas kabelis atitinka 5V kontakt?, kuris tiekia srov? fotorezistoriui.
  2. Nor?dami ?jungti signalizatori?, turite prijungti j? prie skaitmeninio kontakto. Šis kontaktas tiekia signalizatoriui elektros srov?, kad signalizatorius skleist? gars?. Jei jis netieks elektros srov?s, signalizatorius neskleis garso. Paveiksl?lyje parodytas žalias kabelis, jungiantis skaitmenin? kontakt? Nr. 5 su signalizatoriumi.
  3. 3. Nuosekliai sujunkite šviesos jutikl? su rezistoriumi. Turite sujungti š? ?prastin? jungt? su analogine „Build & Code UNO“ plokšt?s ?vestimi. Tokiu b?du plokšt? gal?s nuskaityti visas jutiklio vertes. Paveiksl?lyje parodytas geltonas kabelis, jungiantis fotorezistori? su analoginiu kontaktu A0, d?l to galima priimti jutiklio matavimus.

PROGRAMOS KODAS

Galite atlikti š? projekt? naudodami „Arduino“ program? arba suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Toliau pateikiamas reikiamas kodas.

„Arduino“ kodas

J?s parašysite kod?, kuris nuolat nuskaitys šviesos jutiklio informacij?. Jei jutiklis gauna daug šviesos, jis si?s vertes artimas 1000, ta?iau, jei jutiklis gauna maž? šviesos kiek?, jis si?s vertes artimas 0. Taigi, t? žinodami galite nustatyti vert?, kuri imituos saul?tek? (laik? kai tur?t? ?sijungti žadintuvas). Pavyzdžiui, galite nustatyti reikšm? lygi? 850.

Tada turite nustatyti s?lyg?, ir priklausomai nuo to, ar ši s?lyga yra tenkinama ar ne, programa elgsis vienu ar kitu b?du.

S?lyga bus tokia: jei šviesos jutiklio vert?s rodmenys yra mažesni nei 850, tai reiškia, kad vis dar yra „naktis“, taigi signalizatorius garso neskleis (s?lyga tenkinama). Kita vertus, jei šviesos jutiklio vert?s rodmenys yra didesni nei 850 (s?lyga netenkinama), vadinasi yra „diena“, tokiu atveju signalizatorius turi skleisti gars?.

Norint, kad signalizatorius skleist? gars?, turite užprogramuoti skaitmenin? kontakt? kaip išvest? (šiame pavyzdyje tai yra kontaktas Nr. 5). Skaitmeninis kontaktas Nr. 5 bus tas, kuris tiekia signalizatoriui elektros srov?, kad signalizatorius skleist? gars?, kai s?lyga netenkinama (kai vert?s rodmenys yra didesni nei 850).

Jei norite ?jungti signalizatori?, turite suteikti jam aukšt? vert? (aukšta arba 1), o kai norite, kad signalizatorius išsijungt?, turite jam suteikti žem? vert? (žema arba 0).

  1. Parsisi?skite ir ?diekite „Arduino IDE“ program?. Ji si?loma „Windows“, „Mac OS“ ir „Linux“.
  2. Paleiskite „Arduino“ program? ir nukopijuokite ? j? toliau pateikt? program?:
    int ldr = A0;    //Light sensor connected to analog pin A0
    int buzzer = 5;   //Buzzer connected to the digital pin 5
    int value = 0;    // Value created to store the sensor values
    
    void setup()
    {
      pinMode(buzzer, OUTPUT);    //Configure the digital pin 5 as an output
    }
    
    void loop()
    {
      value = analogRead(ldr);    //Instruction to read and store the analog value (from 0 to 1023). The can be from 0 (almost no light) to 1024 (a lot of light)
    
      if (value < 850)  //condición que define que recibe poca luz
      {       
        digitalWrite(buzzer, 0);  // If it receives a small amount of light, the buzzer digital output will be in LOW value (0) so it won’t sound
    
    
      }
      else        //if the condition is not met
      {             
        analogWrite(buzzer, value/4);	//it means it receives a lot of light so the buzzer digital output will be sending data so it will sound
    
    
      }
    }
    

Kodas vaizdinio programavimo programinei ?rangai naudojan?iai blokus

  1. Parsisi?skite ir ?diekite program?.
    1. Paleiskite programin? ?rang?.
    2. Sukonfig?ruokite program?, kad išsaugotum?te kod? „Build & Code UNO“ plokšt?je. Instrukcijos pateikiamos „Arm Robot“ roboto rankos vadovo pirmuosiuose veiksmuose.
  2. 2. Paleiskite program? ir nukopijuokite toliau pateikt? kod?. Naudokite š? paveiksl?l? kaip vadov?:

PRATIMO REZULTATAS:

Priklausomai nuo šviesos jutiklio fiksuojam? ver?i? ir nustatytos s?lygos, signalizatorius skleis gars?, kai aptiks vert? didesn? nei 850, ir taip imituos žadintuv? žadinant? tekant saulei.