Sisukord:
- Samm: kirjeldage komponente
- Samm: mikrokontrolleri püsivara kood
- Samm: püsivara vilkumine mikrokontrollerile
- 4. samm: jälgimisseadme vooluahela koost
Video: Temperatuuri ja valguse taseme monitor koos LCD -ekraaniga NOKIA 5110: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Tere kõigile!
Selles jaotises valmistame lihtsa elektroonilise seadme temperatuuri ja valguse taseme jälgimiseks. Nende parameetrite mõõtmised kuvatakse LCD -ekraanil NOKIA 5110. Seade põhineb mikrokontrolleril AVR ATMEGA328P. Seireseade on varustatud DS18B20 digitaalse termomeetri ja fototakistiga valguse taseme mõõtmiseks.
Samm: kirjeldage komponente
Jälgimisseadme põhikomponendid:
- Mikrokontroller AVR «ATMEGA328P»
- Mustvalge graafiline LCD "NOKIA 5110"
- Programmeeritav eraldusvõimega 1-juhtmeline digitaalne termomeeter "DS18B20"
- Valgusõltuv takisti
- Juhtmed
Mikrokontroller AVR «ATMEGA328P»
Seireseade kasutab järgmisi mikrokontrolleri perifeerseid funktsioone:
- 16-bitine taimer/loenduri katkestus
- 8-kanaliline 10-bitine ADC
- Master/slave SPI jadaliides
Mustvalge graafiline LCD "NOKIA 5110"
Spetsifikatsioonid:
- 48 x 84 punkti LCD -ekraan
- Jadasiini liides maksimaalse suure kiirusega 4 Mbit/s
- Sisemine kontroller/draiver «PCD8544»
- LED-taustvalgus
- Töötage pingega 2,7–5 volti
- Madal energiatarve; see sobib akurakenduste jaoks
- Temperatuurivahemik -25 ° C kuni +70 ° C
- Toetage signaali CMOS -sisendit
LCD -aadressi käsitlemine (aadressimine):
LCD-ekraanil (DDRAM) näidatud mälu aadresside paigutus on maatriks, mis koosneb 6 reast (Y-aadress) Y-aadressist 0 kuni Y-aadressini 5 ja 84 veerust (X-aadress) X-aadressist 0 kuni X- Aadress 83. Kui kasutaja soovib juurdepääsu tulemuse kuvamise positsioonile LCD-ekraanil, peab ta viitama X-aadressi ja Y-aadressi vahelisele suhtele.
Kuvamiseks saadetavad andmed on 8 -bitised (1 bait) ja need paigutatakse vertikaalseks jooneks; sel juhul on bitt MSB madalam ja bitt LSB ülemine, nagu pildil näidatud.
Programmeeritav eraldusvõimega 1-juhtmeline digitaalne termomeeter DALLAS «DS18B20»
Funktsioonid:
- Ainulaadne 1-Wire® liides nõuab suhtlemiseks ainult ühte pordi tihvti
- Vähendage komponentide arvu integreeritud temperatuurianduri ja EEPROM -i abil
- Mõõdab temperatuuri vahemikus -55 ° C kuni +125 ° C (-67 ° F kuni +257 ° F)
- ± 0,5 ° C Täpsus vahemikus -10 ° C kuni +85 ° C
- Programmeeritav eraldusvõime 9 bitist 12 bitini
- Väliseid komponente pole vaja
- Parasiittoite režiim nõuab töötamiseks ainult 2 tihvti (DQ ja GND)
- Lihtsustab hajutatud temperatuuritundlikke rakendusi mitme tilgaga
- Igal seadmel on unikaalne 64-bitine jadakood, mis on salvestatud pardal olevasse ROM-i
- Paindlikud kasutaja määratletavad püsimatud (NV) häireseaded koos häireotsingu käsuga tuvastab seadmed, mille temperatuur on väljaspool programmeeritud piire
Rakendused:
- Termostaatilised juhtnupud
- Tööstussüsteemid
- Tarbekaubad
- Termomeetrid
- Termiliselt tundlikud süsteemid
Valgusõltuv takisti
Valgusõltuv takisti (LDR) on andur, mis muudab oma takistust, kui selle pinnale langeb valgus.
Tavaliselt on LDR -l täielik pimedus ühest megaohmist kuni kahe megaohmini, kümne kuni kahekümne kilo -oomi kümne LUX -i juures, kahe kuni viie kilo -oomi 100 LUX -i juures. Anduri kahe kontakti vaheline takistus väheneb valguse intensiivsusega või juhtivus kahe anduri kontakti vahel suureneb.
Kasutage pingejaotusahelat takistuse muutuse muutmiseks pinge muutuseks.
Samm: mikrokontrolleri püsivara kood
#ifndef F_CPU #define F_CPU 16000000UL // teatades kontrolleri kristallisagedusele (16 MHz AVR ATMega328P) #endif
// SPI INTERFACE DEFINES #define MOSI 3 // MOSI it PORT B, PIN 3 #define MISO 4 // MISO it PORT B, PIN 4 #define SCK 5 // SCK it PORT B, PIN 5 #define SS 2 // SS see on PORT B, PIN 2
// NULLI NÄITUS #define RST 0 // LÄHTESTA SEE PORT B, PIN 0
// DISPLAY MODE SELECT - sisend käsu/aadressi või andmete sisestamise valimiseks. #define DC 1 // DC see on PORT B, PIN 1
// negatiivsete tähistega koodide massiivi kood märkimata char neg [4] = {0x30, 0x30, 0x30, 0x30};
// kodeerib numbrite massiivi [0..9] staatiline const unsigned char font6x8 [10] [16] = {{0xFC, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFC, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01}, // 0 {0x00, 0x00, 0x18, 0x1C, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00}, // {1 0x0C, 0x8E, 0xCE, 0xE6, 0xE6, 0xBE, 0x9E, 0x0C, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01}, // 2 {0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x8C, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01}, // 3 {0x3C, 0x3E, 0x7C, 0x60, 0x60, 0xFC, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x01, 0x03, 0x01}, // 4 {0x1C, 0x3E, 0x3E, 0x36, 0x36, 0xF6, 0xF6, 0xE4, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01x, // 5 0xFE, 0xFE, 0x36, 0x36, 0xF6, 0xF6, 0xE4, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01}, // 6 {0x04, 0x06, 0x06, 0x86, 0xE6, 0x86, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00}, // 7 {0xCC, 0xFE, 0xFE, 0x36, 0x36, 0xFE, 0xFE, 0xCC, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 0x0 3, 0x01}, // 8 {0x3C, 0x7E, 0x7E, 0x66, 0x66, 0xFE, 0xFE, 0xFC, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01} // 9};
// kodeerib sõna massiivi "TEMP:" staatiline const unsigned märk TEMP_1 [165] = {0x02, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0x06, 0x06, 0x02, 0x00, 0xFC, 0xFE, 0xFE, 0x26, 0x26, 0x24, 0x00, 0xFC, 0xFE, 0xFE, 0x1C, 0x38, 0x70, 0x38, 0x1C, 0xFE, 0xFE, 0xFC, 0x00, 0xFC, 0xFE, 0xFE, 0x66, 0x66, 0x7E, 0x7E, 0xC, 0x66 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 0x01, 0x03, 0x01, 0x00, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0C, 0x1E, 0x33, 0x33, 0x1E, 0x0C, 0x0, 0x8 0x9C, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x01,};
// kodeerib sõna massiivi "LUX": const unsigned char TEMP_2 [60] = {0xFC, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFC, 0x00, 0x00, 0xFC, 0xFE, 0xFC, 0x00, 0x04, 0x8E, 0xDE, 0xFC, 0xF8, 0xFC, 0xDE, 0x8E, 0x04, 0x00, 0x8C, 0x8C, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x01, 0x01};
#kaasake
#kaasama #kaasama
// Pordi initsialiseerimine tühistab Port_Init () {DDRB = (1 << MOSI) | (1 << SCK) | (1 << SS) | (1 << RST) | (1 << DC); // Määra MOSI, SCK, SS, RST, DC väljundina, kõik teised sisend PORTB | = (1 << RST); // Seadke RST pin kõrgeks PORTB | = (1 << SS); // Määrake SS pin kõrgeks - Ekraan on Keela DDRC = 0xFFu; // Määra kõik PORTC tihvtid väljundiks. DDRC & = ~ (1 << 0); // Teeb PORTC esimese tihvti sisendiks PORTC = 0x00u; // Seadke kõik PORTC tihvtid madalaks, mis selle välja lülitab. }
// ADC initsialiseerimine tühine ADC_init () {// Luba ADC, diskreetimissagedus = osc_freq/128 seadista eelpinge maksimumväärtuseks, 128 ADCSRA | = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); ADMUX = (1 << REFS0); // Valige pinge viide ADC -le // Valige vaikimisi kanal 0, kasutades ADC Multiplexer Select registrit (ADC0). }
// Analoog -digitaalmuundamise tulemuse lugemise funktsioon uint16_t get_LightLevel () {_delay_ms (10); // Oota mõnda aega, kuni kanal saab valitud ADCSRA | = (1 << ADSC); // Alustage ADC teisendamist, määrates ADSC bit. kirjutage ADSC -le 1, samal ajal kui (ADCSRA & (1 << ADSC)); // oodake konversiooni lõpuleviimist // ADSC muutub seni 0 -ks, käivitage tsükkel pidevalt _delay_ms (10); tagasipöördumine (ADC); // Tagastab 10-bitise tulemuse}
?? Registreeri }
// initsialiseerida 16 -bitine Timer1, katkestus ja muutuja void TIMER1_init () {// seadistada taimer eelhääletajaga = 256 ja CTC -režiim TCCR1B | = (1 << WGM12) | (1 << CS12); // lähtestada loendur TCNT1 = 0; // initsialiseeri võrdlusväärtus - 1 sek OCR1A = 62500; // lubage võrdlus katkestus TIMSK1 | = (1 << OCIE1A); // lubada globaalsed katkestused sei (); }
// Kuva Kuva lubamine tühine SPI_SS_Enable () {PORTB & = ~ (1 << SS); // SS -pin loogika lubamine 0}
// Display Disable void SPI_SS_Disable () {PORTB | = (1 << SS); // SS -tihvti loogika keelamine 1}
// Funktsioon andmete kuvamispuhvrisse saatmiseks tühi SPI_Tranceiver (allkirjastamata char andmed) {SPDR = data; // Laadige andmed puhvrisse while (! (SPSR & (1 << SPIF))); // Oodake, kuni edastamine on lõpule viidud}
// Lähtesta kuvar lähtestamise alguses void Display_Reset () {PORTB & = ~ (1 << RST); _viivitus_ms (100); PORTB | = (1 << RST); }
// Käsu kirjutamise funktsioon void Display_Cmnd (allkirjastamata sümboli andmed) {PORTB & = ~ (1 << DC); // teha DC pin loogikaks 0 käsutoiminguks SPI_Tranceiver (andmed); // andmete saatmine andmeregistrisse PORTB | = (1 << DC); // muutke DC -nööpnõel loogikaks kõrgeks andmete töötamiseks}
// Ekraani initsialiseerimine tühine Display_init () {Display_Reset (); // ekraani lähtestamine Display_Cmnd (0x21); // käsk seatud lisarežiimis Display_Cmnd (0xC0); // seadistage pinge, saates C0 tähendab VOP = 5V Display_Cmnd (0x07); // seadistage temp. koefitsient kuni 3 Display_Cmnd (0x13); // Voltage Bias System määratud väärtus Display_Cmnd (0x20); // käsu komplekt põhirežiimis Display_Cmnd (0x0C); // kuva tulemus tavarežiimis}
// Kustuta kuva tühjus Display_Clear () {PORTB | = (1 << DC); // muuta DC -pin loogikale kõrgeks (int k = 0; k <= 503; k ++) {SPI_Tranceiver (0x00);} PORTB & = ~ (1 << DC); // muuta DC -pin loogikaks käskude tegemiseks null}
// seadke veerg ja rida tulemuse kuvamise asendisse LCD -ekraanil tühi Display_SetXY (unsigned char x, unsigned char y) {Display_Cmnd (0x80 | x); // veerg (0-83) Display_Cmnd (0x40 | y); // rida (0–5)}
// Funktsioon negatiivse märgi kuvamiseks tühi Display_Neg (allkirjastamata märk) {Display_SetXY (41, 0); // Määra kuvatava asukoha aadress (int index = 0; index0) {SPDR = 0x30;} // Laadi andmed kuvari puhvrisse (kuva negatiivne märk) else {SPDR = 0x00;} // Laadi andmed kuva puhver (selge negatiivne märk) samas (! (SPSR & (1 << SPIF))); // Oodake, kuni edastamine on lõppenud _delay_ms (100); }}
// Funktsioon digitaalse märgi tühjendamiseks tühi Off_Dig (allkirjastamata sümbol x, märkimata märk y) {Display_SetXY (x, y); // Määrake kuvatava positsiooni aadress (ülemine rida) (int indeks = 0; indeks <8; indeks ++) {SPI_Tranceiver (0);} // Laadige andmed kuva puhverisse (selge digitaalse märgi ülemine osa) y ++; Display_SetXY (x, y); // Määrake kuvatava positsiooni aadress (alumine rida) (int indeks = 0; indeks <8; indeks ++) {SPI_Tranceiver (0);} // Laadige andmed ekraani puhverisse (selge digitaalse märgi alumine osa)}
// Funktsioon digitaalse märgi tühja kuvamiseks <16; indeks ++) {if (indeks == 8) {y ++; Display_SetXY (x, y);} // Määra kuvatava asukoha aadress (alumine rida) SPI_Tranceiver (font6x8 [dig] [register]); // Laadige koodide massiivi numbriandmeid kuvari puhverisse _delay_ms (10); }}
// DS18B20 allkirjastamata märk SS18B20_init () {DDRD | = (1 << 2); // Määra PORTD PD2 pin väljundiks PORTD & = ~ (1 << 2); // Määra PD2 pin madalaks _delay_us (490); // Initsialiseerimise ajastus DDRD & = ~ (1 << 2); // Määra PORTD PD2 pin sisendiks _delay_us (68); // Ajastus OK_Flag = (PIND & (1 << 2)); // saada anduri impulss _delay_us (422); tagasta OK_Flag; // tagastab 0-ok andur on pistik, 1-vea andur on lahti ühendatud}
// Funktsioon DS18B20 baidi lugemiseks unsigned char read_18b20 () {unsigned char i, data = 0; jaoks (i = 0; i <8; i ++) {DDRD | = (1 << 2); // Määra PORTD PD2 pin väljundiks _delay_us (2); // Ajastus DDRD & = ~ (1 1; // Järgmine bit, kui (PIND & (1 << 2)) andmed | = 0x80; // pane bit baiti _delay_us (62);} tagastab andmed;}
// Funktsioon baidi kirjutamiseks DS18B20 void write_18b20 (allkirjastamata char andmed) {unsigned char i; jaoks (i = 0; i <8; i ++) {DDRD | = (1 << 2); // Määra PORTD PD2 pin väljundiks _delay_us (2); // Ajastus if (andmed & 0x01) DDRD & = ~ (1 << 2); // kui tahame kirjutada 1, vabastage rida else DDRD | = (1 1; // Järgmine bit _delay_us (62); // Ajastus DDRD & = ~ (1 << 2); // Määrake PORTD sisendina _delay_us (2);}}
// Funktsioon valguse taseme kuvamiseks tühine Read_Lux () {uint16_t puhver; allkirjastamata int temp_int_1, temp_int_2, temp_int_3, temp_int_0; // ühekohalised, kahekohalised, kolmekohalised, veerandkohalised puhver = get_LightLevel (); // loe analoog -digitaal tulemuse teisendamise valguse tase temp_int_0 = puhver % 10000/1000; // veerandkohaline temp_int_1 = puhver % 1000 /100; // kolmekohaline temp_int_2 = puhver % 100/10; // kahekohaline temp_int_3 = puhver % 10; // ühekohaline if (temp_int_0> 0) // kui tulemus on veerandkohaline number {Display_Dig (temp_int_0, 32, 2); // kuvab 1 taseme valgustaset Display_Dig (temp_int_1, 41, 2); // kuva 2 -kohaline valgusaste Display_Dig (temp_int_2, 50, 2); // kuva 3 -kohaline valgusaste Display_Dig (temp_int_3, 59, 2); // kuva 4 valguse taseme numbrit} else {if (temp_int_1> 0) // kui tulemus on kolmekohaline number {Off_Dig (32, 2); // kustuta number 1 märk Display_Dig (temp_int_1, 41, 2); // kuvab 1 numbrit valgustaset Display_Dig (temp_int_2, 50, 2); // kuva 2 -kohaline valgusaste Display_Dig (temp_int_3, 59, 2); // kuva 3-kohaline valgusaste} else {if (temp_int_2> 0) // kui tulemus on kahekohaline number {Off_Dig (32, 2); // kustuta number 1 märk Off_Dig (41, 2); // kustuta numbri 2 märk Display_Dig (temp_int_2, 50, 2); // kuvab 1 numbrit valgustaset Display_Dig (temp_int_3, 59, 2); // kuva 2 valguse taseme numbrit} else // kui tulemus on ühekohaline number {Off_Dig (32, 2); // kustuta number 1 märk Off_Dig (41, 2); // kustuta numbri 2 märk Off_Dig (50, 2); // kustuta numbri 3 märk Display_Dig (temp_int_3, 59, 2); // kuva 1 valgustugevus}}}}
// Funktsioon temperatuuri kuvamiseks tühi Read_Temp () {unsigned int buffer; allkirjastamata int temp_int_1, temp_int_2, temp_int_3; // ühekohalised, kahekohalised, kolmekohalised, veerandkohalised numbrid märk Temp_H, Temp_L, OK_Flag, temp_flag; DS18B20_init (); // DS18B20 initsialiseerimine write_18b20 (0xCC); // Anduri koodi kontrollimine write_18b20 (0x44); // Alusta temperatuuri teisendamist _delay_ms (1000); // Anduri küsitluse viivitus DS18B20_init (); // DS18B20 initsialiseerimine write_18b20 (0xCC); // Anduri koodi kontrollimine write_18b20 (0xBE); // Käsk anduri sisu lugemiseks Temp_L = read_18b20 (); // Loe kaks esimest baiti Temp_H = read_18b20 (); temp_lipp = 1; // 1-positiivne temperatuur, 0-negatiivne temperatuur // Saada negatiivne temperatuur, kui (Temp_H & (1 << 3)) // Sign Bit Check (kui bitt on seatud-negatiivne temperatuur) {sign int temp; temp_lipp = 0; // lipp on seatud 0 - negatiivne temperatuur temp = (Temp_H << 8) | Temp_L; temp = -temperatuur; // Teisenda lisakood otse Temp_L = temp; Temp_H = temp >> 8; } puhver = ((Temp_H 4); temp_int_1 = puhver % 1000/100; // kolmekohaline temp_int_2 = puhver % 100/10; // kahekohaline temp_int_3 = puhver % 10; // ühekohaline
// Kui temperatuur on negatiivne, näitab see temperatuuri
if (temp_flag == 0) {Display_Neg (1);} else {Display_Neg (0);} if (temp_int_1> 0) // kui tulemus on kolmekohaline number {Display_Dig (temp_int_1, 45, 0); // kuvab temperatuuri 1 numbri Display_Dig (temp_int_2, 54, 0); // kuvab temperatuuri 2 numbrit Display_Dig (temp_int_3, 63, 0); // kuva temperatuur 3 numbrit} else {if (temp_int_2> 0) // kui tulemus on kahekohaline number {Off_Dig (45, 0); // kustuta number 1 märk Display_Dig (temp_int_2, 54, 0); // kuvab temperatuuri 1 numbri Display_Dig (temp_int_3, 63, 0); // kuva 2 temperatuuri numbrit} else // kui tulemus on ühekohaline number {Off_Dig (45, 0); // kustuta number 1 märk Off_Dig (54, 0); // kustuta numbri 2 märk Display_Dig (temp_int_3, 63, 0); // kuva 1 temperatuuri number}}}
// See ISR käivitatakse alati, kui taimerite arv võrdleb võrdlusväärtusega (iga 1 sekundi järel) ISR (TIMER1_COMPA_vect) {// Lugemine, temperatuuri ja valgustuse kuvamine Read_Temp (); Read_Lux (); }
// Funktsioon sõnade "TEMP" ja "LUX" kuvamiseks void Display_label () {// Word "TEMP" Display_SetXY (0, 0); // Määra kuvatava positsiooni aadress (üles rida) (int indeks = 0; indeks <105; indeks ++) {if (indeks == 40) {Display_SetXY (0, 1);} // Määra positsiooni aadress ekraanil (alumine rida), kui (indeks == 80) {Display_SetXY (72, 0);} // Määrake kuvatava positsiooni aadress (ülemine rida), kui (indeks == 92) {Display_SetXY (72, 1); } // Määra kuvatava asukoha aadress (alumine rida) SPDR = TEMP_1 [indeks]; // Laadige koodimassiivi andmed kuvari puhverisse, kui (! (SPSR & (1 << SPIF))); // Oodake, kuni edastamine on lõppenud _delay_ms (10); } // Sõna "LUX" Display_SetXY (0, 2); // Määra kuvatava positsiooni aadress (üles rida) (int indeks = 0; indeks <60; indeks ++) {if (indeks == 30) {Display_SetXY (0, 3);} // Määra positsiooni aadress ekraanil (alumine rida) SPDR = TEMP_2 [indeks]; // Laadige koodide massiivi andmed kuvari puhverisse, kui (! (SPSR & (1 << SPIF))); // Oodake, kuni edastamine on lõppenud _delay_ms (10); }}
int main (tühine)
{Port_Init (); // Pordi initsialiseerimine ADC_init (); // ADC initsialiseerimine SPI_Init (); // SPI initsialiseerimine SPI_SS_Enable (); // Kuva lubamine DS18B20_init (); // DS18B20 initsialiseerimine Display_init (); // Ekraani initsialiseerimine Display_Clear (); // Kuva selge Display_label (); // Näita sõnu "TEMP" ja "LUX" TIMER1_init (); // Taimer1 Initsialiseerimine. Alustage jälgimist. Parameetrite hankimine iga sekundi tagant. // Lõpmatuse silmus samas (1) {}}
Samm: püsivara vilkumine mikrokontrollerile
HEX -faili üleslaadimine mikrokontrolleri välkmällu. Vaadake videot mikrokontrolleri välkmälu põletamise üksikasjaliku kirjeldusega: Mikrokontrolleri välkmälu põletamine…
4. samm: jälgimisseadme vooluahela koost
Ühendage komponendid vastavalt skemaatilisele skeemile.
Ühendage toide vooluvõrku ja see töötab!
Soovitan:
Temperatuuri ja valguse intensiivsuse logimine - Proteuse simulatsioon - Fritzing - Liono Maker: 5 sammu
Temperatuuri ja valguse intensiivsuse logimine | Proteuse simulatsioon | Fritzing | Liono Maker: Tere, see on Liono Maker, see on minu ametlik YouTube'i kanal. See on avatud lähtekoodiga YouTube'i kanal. Siin on link: Liono Makeri YouTube'i kanal Siin on videolink: Temp & Kerge intensiivsusega logimine Selles õpetuses õpime, kuidas temperit valmistada
LDR valguse taseme detektor: silmade avamine ja sulgemine: 6 sammu
LDR -valguse taseme detektor: silmade avamine ja sulgemine: Tere kõigile, ma loodan, et see juhendatav teile meeldib. Kõik kahtlused, kommentaarid või parandused võetakse hästi vastu. See vooluahel realiseeriti juhtimismoodulina, et anda teavet selle kohta, kui palju valgust on ümbruses, et aidata
ESP32 -põhine M5Stack M5stick C ilmateade koos DHT11 -ga - Jälgige temperatuuri niiskuse ja kuumuse indeksit mudelil M5stick-C koos DHT11-ga: 6 sammu
ESP32 -põhine M5Stack M5stick C ilmateade koos DHT11 -ga | Jälgige temperatuuri niiskuse ja kuumuse indeksit M5stick-C-l DHT11 abil: Tere poisid, selles juhendis õpime, kuidas ühendada DHT11 temperatuuriandur m5stick-C-ga (m5stacki arendusplaat) ja kuvada see m5stick-C ekraanil. Nii loeme selles õpetuses temperatuuri, niiskust ja amp; ma kuumutan
Kuvage Arduino reaalajas anduri näidud Nokia 5110 LCD -ekraanil: 4 sammu (koos piltidega)
Kuvage Arduino reaalajas anduri näiteid Nokia 5110 LCD -ekraanil: kui olete kunagi töötanud arduinoga, olete ilmselt soovinud, et see näitaks anduri näitu. Jada monitori kasutamine on täiesti korras, kuid olles arduino badass, muutute kiiresti ilmselt tahaks, et see näitaks näiteid millegi kohta
Arduino menüü Nokia 5110 LCD -ekraanil pöörleva kodeerija abil: 6 sammu (koos piltidega)
Arduino menüü Nokia 5110 LCD -ekraanil pöörleva kodeerija abil: Kallid sõbrad, tere tulemast teise õpetuse juurde! Selles videos õpime, kuidas koostada populaarse Nokia 5110 LCD -ekraani jaoks oma menüü, et muuta meie projektid kasutajasõbralikumaks ja võimekamaks. Alustame! See on projekt