Šajā projektā mēs izmantojam ADC (Analog to Digital Conversion) jēdzienu ARDUINO UNO. Lai izmērītu magnēta lauka intensitāti, mēs izmantosim Hall Effect sensoru un Arduino uno. Sensors, ko mēs šeit izmantojām, ir UGN3503U. Tas ir zāles sensors, kas uztver magnētiskā lauka intensitāti un nodrošina mainīgu spriegumu izejā, proporcionālu lauka intensitātei. Šis sensors uztver lauka intensitāti “ GAUSS ” vienībās.
Tātad ar šo sensoru mums būs lauka intensitāte kā mainīgs spriegums. Izmantojot ADC funkciju, mēs šo spriegumu pārveidosim par skaitli. Šis skaitlis norāda lauka intensitāti un tiek parādīts LCD.
Arduino ir seši ADC kanāli. Tajos vienu vai visus no tiem var izmantot kā analogā sprieguma ieejas. UNO ADC ir 10 bitu izšķirtspēja (tātad veselu skaitļu vērtības no (0- (2 ^ 10) 1023)). Tas nozīmē, ka tas ieejas spriegumus no 0 līdz 5 voltiem kartēs veselu skaitļu vērtībās no 0 līdz 1023. Tātad katram (5/1024 = 4,9 mV) vienībā.
Šajā visā mēs savienosim potenciometru vai pot ar kanālu 'A0' un parādīsim ADC rezultātu vienkāršā displejā. Vienkāršie displeji ir 16x1 un 16x2 displeja vienības. 16x1 displeja blokam būs 16 rakstzīmes, un tas būs vienā rindā. 16x2 būs 32 rakstzīmes kopējā 16in 1 st līnijas un vēl 16 2 nd līniju. Šeit jāsaprot, ka katrā rakstzīmē ir 5x10 = 50 pikseļi, tāpēc, lai parādītu vienu rakstzīmi, visiem 50 pikseļiem ir jādarbojas kopā, taču mums par to nav jāuztraucas, jo displeja blokā ir vēl viens kontrolleris (HD44780), kas pikseļu vadības darbs (to var redzēt LCD vienībā, tā ir melnā acs aizmugurē).
Nepieciešamās sastāvdaļas
Aparatūra: ARDUINO UNO, barošanas avots (5v), JHD_162ALCD (16x2LCD), 100uF kondensators (2gab.), UGn3503U.
Programmatūra: arduino IDE (Arduino katru nakti)
Shēmas shēma un paskaidrojums
Iepriekš redzamajā attēlā parādīta ķēdes shēma magnētiskā lauka mērīšanai, izmantojot arduino uno.
16x2 LCD ekrānā ir 16 tapas, ja ir aizmugures apgaismojums, ja aizmugures apgaismojuma nav, būs 14 tapas. Var darbināt vai atstāt aizmugurējās gaismas tapas. Tagad 14 tapas ir 8 datu tapas (7-14 vai D0-D7), 2 el piegādes tapas (1 un 2 vai VSS un VDD vai GND & + 5v), 3 rd pin kontrasta kontrole (Vee-kontrolē, cik biezu rakstzīmēm jābūt attēlā) un 3 vadības tapas (RS & RW & E).
Iepriekš redzamajā ķēdē jūs varat novērot, ka esmu paņēmis tikai divus vadības tapas, kontrasta bits un READ / WRITE netiek bieži izmantoti, lai tos varētu saīsināt. Tas nodrošina LCD kontrasta un lasīšanas režīmu. Mums vienkārši jākontrolē ENABLE un RS tapas, lai atbilstoši nosūtītu rakstzīmes un datus.
LCD savienojumi ir izveidoti zemāk:
PIN1 vai VSS uz zemi
PIN2 vai VDD vai VCC līdz + 5v jaudai
PIN3 vai VEE uz zemes (iesācējam vislabāk nodrošina maksimālu kontrastu)
PIN4 vai RS (Reģistrēt atlasi) uz ARDUINO UNO PIN8
PIN5 vai RW (lasīšana / rakstīšana) uz zemi (LCD nodošana lasīšanas režīmā atvieglo saziņu lietotājam)
PIN6 vai E (iespējot) uz ARDUINO UNO PIN9
ARDUINO UNO PIN11 vai D4 līdz PIN10
ARDUINO UNO PIN12 vai D5 līdz PIN11
ARDUINO UNO PIN13 vai D6 līdz PIN12
ARDUINO UNO PIN14 vai D7 līdz PIN13
ARDUINO IDE ļauj lietotājam izmantot LCD 4 bitu režīmā. Šis saziņas veids ļauj lietotājam samazināt piespraudes izmantošanu ARDUINO, atšķirībā no citiem, ARDUINO nav jāprogrammē atsevišķi, lai to izmantotu 4 it režīmā, jo pēc noklusējuma ARDUINO ir iestatīts saziņai 4 bitu režīmā. Ķēdē jūs varat redzēt, ka mēs izmantojām 4 bitu sakarus (D4-D7). Tātad, vienkārši novērojot no tabulas augšpusē, mēs savienojam 6 LCD tapas ar kontrolieri, kurā 4 tapas ir datu tapas un 2 tapas kontrolei.
Strādā
Lai savienotu LCD ar ARDUINO UNO, mums jāzina dažas lietas.
|
Pirmkārt, UNO ADC kanāliem noklusējuma atsauces vērtība ir 5 V. Tas nozīmē, ka mēs varam dot maksimālo ieejas spriegumu 5 V ADC pārveidošanai jebkurā ieejas kanālā. Tā kā daži sensori nodrošina spriegumu no 0-2,5 V, ar 5 V atsauci mēs iegūstam mazāku precizitāti, tāpēc mums ir instrukcija, kas ļauj mums mainīt šo atsauces vērtību. Tātad, lai mainītu atsauces vērtību, kas mums ir (“analogReference ();”)
Pēc noklusējuma mēs iegūstam maksimālo plates ADC izšķirtspēju, kas ir 10 biti, šo izšķirtspēju var mainīt, izmantojot instrukciju (“analogReadResolution (bits);”). Šīs izšķirtspējas izmaiņas dažos gadījumos var būt noderīgas.
Ja iepriekš minētie nosacījumi ir iestatīti uz noklusējumu, mēs varam nolasīt vērtību no 0 kanāla ADC, tieši izsaucot funkciju “analogRead (pin);”, šeit “pin” apzīmē tapu, kur mēs savienojām analogo signālu, šajā gadījumā tas būtu jābūt “A0”. Vērtību no ADC var uzskatīt par veselu skaitli kā “int ADCVALUE = analogRead (A0); ”, Pēc šīs instrukcijas vērtība pēc ADC tiek saglabāta veselā skaitlī“ ADCVALUE ”.
TAGAD parunāsim mazliet par 16x2 LCD. Vispirms mums jāiespējo galvenes fails ('#include
Otrkārt, mums jāpaziņo dēlim, kāda veida LCD mēs šeit izmantojam. Tā kā mums ir tik daudz dažādu veidu LCD (piemēram, 20x4, 16x2, 16x1 utt.). Šeit mēs savienosim 16x2 LCD ar UNO, lai iegūtu "lcd.begin (16, 2);". Par 16x1 iegūstam “lcd.begin (16, 1);”.
Šajā instrukcijā mēs pateiksim tāfelei, kur mēs savienojām tapas. Savienotie tapas tiks attēlotas secībā kā "RS, En, D4, D5, D6, D7". Šīs tapas ir pareizi attēlotas. Tā kā mēs savienojām RS ar PIN0 un tā tālāk, kā parādīts ķēdes diagrammā, mēs parādām tapas tapas numuru kā “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Pēc tam, kad ir atlicis tikai nosūtīt datus, dati, kas jāparāda LCD, jāraksta kā “cd.print (“ sveiki, pasaule! ”); Ar šo komandu LCD displejā parādās “sveiki, pasaule!”. Kā redzat, mums nav jāuztraucas par šo visu citu, mums vienkārši ir jāinicializē, un ANO būs gatava attēlot datus. Lai šeit nosūtītu BYTE by BYTE datus, mums nav jāraksta programmas cilpa.
Kad magnēts ir piegādāts sensora tuvumā, sensors attēlo spriegumu izejā, kas ir proporcionāls laukam, Uno uzņem šo vērtību un parāda LCD. Šī magnētiskā lauka mērīšanas projekta darbība ir sīkāk izskaidrota, izmantojot zemāk esošo C kodu.