В начале января я впервые взял в руки Arduino (очень дешёвый микрокомпьютер, у которого есть 14 цифровых входов/выходов и 6 аналоговых входов) и за пару часов научился управлять шаговым двигателем (http://ammo1.livejournal.com/808639.html). Для дальнейших экспериментов мне были нужны индикаторы и датчики освещённости, поэтому они были заказаны на Aliexpress, а эксперименты отложены. На прошлой неделе пришла последняя посылка с тем, что было заказано, и весь вчерашний день я посвятил экспериментам и изучению языка программирования Arduino.
С одной стороны — очень просто, с другой — доступа к портам после установки платы больше нет. Можно подпаять контакты, чтобы они торчали уже из модуля экрана, а можно весь модуль подключить к плате Arduino проводами.
При первом включении индикатор ничего не показывал и я уже подумал, что он неисправен. Оказалось, что нужно было покрутить синий подстроечный резистор, регулирующий контрастность. Изначально он был в таком положении, что контрастность была нулевой.
Управлять индикатором не просто, а очень просто. Программа, отображающая две строчки, работу которой видно на заглавной фотографии, выглядит так:
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print(«ammo1.lj.ru»);
lcd.setCursor(2,1);
lcd.print(«vsem privet :)»);
}
void loop() {
}
Ещё я купил четырёхкнопочную мембранную клавиатуру за $0.53 и четырёхразрядный индикатор за $1.4.
Индикатор довольно бестолковый — у него нет «мозгов», а индикация динамическая. Это означает, что для того, чтобы он работал, на него нужно непрерывно отправлять данные. Оказалось, что это не стандартный компонент Arduino, а чисто китайское поделие. Для него есть библиотека, написанная каким-то энтузиастом, но работает это всё неудобно. Впрочем, может и пригодится.
На самом деле оказалось, что без индикаторов и дисплеев можно обойтись — Arduino умеет выводить данные на экран компьютера через свой USB-интерфейс. Для экспериментов это даже удобней.
Я решил для начала сделать на базе Arduino пульсметр — прибор, измеряющий пульсацию света. Для этого было куплено четыре разных датчика света.
1. Датчик с фоторезистором за $0.4.
2. Датчик с фотодиодом за $0.6.
Уже заказав их, я осознал, что это не то, что мне нужно. Они предназначены для автоматического включения освещения в тёмное время суток и просто выдают единицу на цифровой выход, когда уровень освещённости становится меньше порогового.
3. Датчик с фоторезистором, имеющий аналоговый выход за $0.9. На самом деле это то же самое, что и первый датчик, просто прямо к ножке фоторезистора подключен ещё один выход. Я сделал точно такой же выход на втором датчике, подпаяв к нему жёлтый провод.
4. Хитрый датчик с двумя фотодиодами и двумя АЦП за $1.75. Его пока ещё не включал. Он не годится для измерения пульсации, так как выдаёт в цифре значение освещённости и делает это относительно медленно, но для гониофотометра (прибора, измеряющего угол освещения и световой поток) он скорее всего подойдёт лучше всего.
О том, чего я вчера добился, расскажу отдельно, а пока просто покажу картинку пульсаций света плохой китайской светодиодной лампочки, сделанную на основе данных, полученных с помощью Arduino.
p.s. Ищу «самоделкиных» и знатоков Arduino, готовых помочь с реализацией нескольких технических идей для lamptest.ru: простой гониофотометр из шагового мотора и датчика света для измерения угла освещения и светового потока ламп, измеритель пульсации света, анализатор формы потребляемого тока.
© 2017, Алексей Надёжин
Основная тема моего блога — техника в жизни человека. Я пишу обзоры, делюсь опытом, рассказываю о всяких интересных штуках. А ещё я делаю репортажи из интересных мест и рассказываю об интересных событиях.
Добавьте меня в друзья здесь. Запомните короткие адреса моего блога: Блог1.рф и Blog1rf.ru.
Второй мой проект — lamptest.ru. Я тестирую светодиодные лампы и помогаю разобраться, какие из них хорошие, а какие не очень.
Этот пост в моём блоге LiveJournal: Эксперименты с Arduino