В този проект използваме концепцията за ADC (аналогово към цифрово преобразуване) в ARDUINO UNO. Ще използваме сензор на Hall Effect и Arduino uno за измерване на силата на полето на магнит. Сензорът, който използвахме тук, е UGN3503U. Това е сензор на Hall, който усеща силата на магнитното поле и осигурява променливо напрежение на изхода, пропорционално на силата на полето. Този сензор улавя силата на полето в единиците на „ GAUSS “.
Така че с този сензор ще имаме напрежение на полето като променливо напрежение. Използвайки функцията ADC, ние ще преобразуваме това напрежение в число. Това число представлява напрегнатостта на полето и се показва на LCD.
Arduino има шест ADC канала. В тях всеки един или всички от тях може да се използва като входове за аналогово напрежение. UNO ADC е с 10-битова разделителна способност (така че целочислените стойности от (0- (2 ^ 10) 1023)). Това означава, че ще преобразува входните напрежения между 0 и 5 волта в целочислени стойности между 0 и 1023. Така че за всеки (5/1024 = 4.9mV) на единица.
Във всичко това ще свържем потенциометър или пот към канала „A0“ и ще покажем резултата от ADC на прост дисплей. Простите дисплеи са 16x1 и 16x2 дисплейни единици. Дисплеят 16x1 ще има 16 символа и е в един ред. 16x2 ще има 32 символа общо 16 в 1- ви ред и още 16 във 2- ри ред. Тук трябва да се разбере, че във всеки знак има 5x10 = 50 пиксела, така че за показване на един символ всички 50 пиксела трябва да работят заедно, но не е нужно да се притесняваме за това, защото в дисплейния блок има друг контролер (HD44780), който прави работа за управление на пикселите (можете да го видите в LCD устройство, това е черното око отзад).
Необходими компоненти
Хардуер: ARDUINO UNO, захранване (5v), JHD_162ALCD (16x2LCD), кондензатор 100uF (2 броя), UGn3503U.
Софтуер: arduino IDE (Arduino всяка вечер)
Електрическа схема и обяснение
Горната фигура показва електрическата схема за измерване на магнитното поле с помощта на arduino uno.
В 16x2 LCD има 16 щифта, ако има задно осветление, ако няма задно осветление, ще има 14 извода. Човек може да захранва или да оставя щифтовете на задното осветление. Сега в 14-те извода има 8 извода за данни (7-14 или D0-D7), 2 извода за захранване (1 & 2 или VSS & VDD или GND & + 5v), 3 -ти извод за контрол на контраста (VEE - контролира колко дебели трябва да бъдат символите показани) и 3 контролни щифта (RS & RW & E).
В схемата по-горе можете да забележите, че съм взел само два контролни щифта, контрастният бит и READ / WRITE не се използват често, така че могат да бъдат късо заземени. Това поставя LCD в най-висок контраст и режим на четене. Просто трябва да контролираме ENABLE и RS щифтовете, за да изпращаме символи и данни по съответния начин.
Връзките, които се правят за LCD са дадени по-долу:
PIN1 или VSS към земята
PIN2 или VDD или VCC до + 5v мощност
PIN3 или VEE към земята (дава максимален контраст най-добър за начинаещи)
PIN4 или RS (Регистрация за избор) до PIN8 на ARDUINO UNO
PIN5 или RW (четене / запис) към земята (поставя LCD в режим на четене, улеснява комуникацията за потребителя)
PIN6 или E (Активиране) до PIN9 на ARDUINO UNO
ПИН11 или Д4 до ПИН10 на ARDUINO UNO
PIN12 или D5 до PIN11 на ARDUINO UNO
PIN13 или D6 до PIN12 на ARDUINO UNO
PIN14 или D7 до PIN13 на ARDUINO UNO
ARDUINO IDE позволява на потребителя да използва LCD в 4-битов режим. Този тип комуникация позволява на потребителя да намали използването на пина на ARDUINO, за разлика от други ARDUINO не е необходимо да се програмира отделно за използването му в 4 it режим, тъй като по подразбиране ARDUINO е настроен да комуникира в 4 битов режим. Във веригата можете да видите, че използвахме 4-битова комуникация (D4-D7). Така че само от наблюдение от горната таблица ние свързваме 6 щифта LCD към контролер, в който 4 щифта са щифтове за данни и 2 щифта за управление.
Работещи
За да свържем LCD с ARDUINO UNO, трябва да знаем няколко неща.
|
На първо място UNO ADC каналите имат референтна стойност по подразбиране 5V. Това означава, че можем да дадем максимално входно напрежение от 5V за ADC преобразуване на всеки входен канал. Тъй като някои сензори осигуряват напрежение от 0-2,5V, с 5V референция получаваме по-малка точност, така че имаме инструкция, която ни позволява да променим тази референтна стойност. Така че за промяна на референтната стойност имаме (“analogReference ();”)
По подразбиране получаваме максималната разделителна способност на ADC на борда, която е 10 бита, тази разделителна способност може да бъде променена с помощта на инструкция („analogReadResolution (битове);“). Тази промяна на резолюцията може да бъде полезна за някои случаи.
Сега, ако горните условия са зададени по подразбиране, можем да прочетем стойност от ADC на канал '0', като директно извикаме функцията “analogRead (pin);”, тук “pin” представлява щифт, където сме свързали аналогов сигнал, в този случай би бъде “A0”. Стойността от ADC може да бъде взета в цяло число като „int ADCVALUE = analogRead (A0); ”, Чрез тази инструкция стойността след ADC се съхранява в цялото число„ ADCVALUE ”.
СЕГА нека поговорим малко за 16x2 LCD. Първо трябва да активираме заглавния файл ('#include
Второ, трябва да кажем на дъската какъв тип LCD използваме тук. Тъй като имаме толкова много различни видове LCD (като 20x4, 16x2, 16x1 и т.н.). Тук ще свържем 16x2 LCD към UNO, така че ще получим 'lcd.begin (16, 2);'. За 16x1 получаваме 'lcd.begin (16, 1);'.
В тази инструкция ще кажем на платката, където сме свързали щифтовете. Пиновете, които са свързани, трябва да бъдат представени по ред като „RS, En, D4, D5, D6, D7“. Тези щифтове трябва да бъдат представени правилно. Тъй като свързваме RS към PIN0 и така нататък, както е показано в електрическата схема, ние представяме номера на щифта към борда като „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);“.
След като горе остава само да се изпратят данни, данните, които трябва да се покажат на LCD, трябва да бъдат написани като „cd.print („ здравей, свят! “);“. С тази команда LCD дисплеят показва „здравей, свят!“. Както можете да видите, няма нужда да се притесняваме за нищо друго, просто трябва да инициализираме и ООН ще бъде готова да покаже данни. Не е нужно да пишем програмен цикъл, за да изпращаме данните байт по байт тук.
След като магнитът се доближи до сензора, сензорът представлява напрежение на изхода, пропорционално на полето, тази стойност се приема от Uno и се показва на LCD. Работата на този проект за измерване на магнитното поле е допълнително обяснена чрез долния C код.