Всем привет!
Не смотря на все мои 34 года во мне живёт большой ребёнок иногда немножко сентиментальный и весь такой романтический. Ну и как любой ребёнок ещё люблю чего-нибудь творить, главное чтобы это чего-нибудь было не сложным, быстро воспроизводимым и дающим видимый глазу результат.

(КДПВ)
Ребёнок этот живёт в Питере, городе в котором погоды обычно стоят европейские. Т.е. в середине декабря за окном видишь такую картину:

Правда пока я собирался с мыслями в предновогодней суете — всё немножко изменилось…

Но, не смотря на это, не могу не поделиться мыслью куда ещё можно засунуть закупленные на ebay и бесцельно валяющиеся ардуины. Тем более страна у нас большая и снега на всю не хватает :)
В общем сидел я, скучал по отсутствию снега за окном, а руки чесались чего-нибудь состряпать. Отсюда и родилась мысль собрать изговна и палок Arduino Nano, LCD экрана 16x2 и I2C-адаптера к нему вот такую развлекушку:

Приводить схемы подключения нарисованные во Fritzing не буду — кто с ардуиной знаком и так всё поймёт, а кто нет — дак тому полезно по-гуглить да по-яндексить. Но скетчем естественно поделюсь. За него прошу не пинать, ибо образования у меня сплошь гуманитарные.
К сожалению экранчики у меня в наличии только двухстрочные. :( На четырёхстрочном, я думаю, выглядеть будет гораздо интересней (код нужно будет немножко дописать). Кстати, если у вас такие есть — выкладывайте видео в комментариях. Ну и если кто код может сделать более красивым, тоже буду рад видеть в комментариях ;).
Библиотеку для экрана берём отсюда, тк с вашей может и не заработать (испробовано на кошках).
И напоследок видео:
Всем спасибо за внимание и С Новым Годом!

Не смотря на все мои 34 года во мне живёт большой ребёнок иногда немножко сентиментальный и весь такой романтический. Ну и как любой ребёнок ещё люблю чего-нибудь творить, главное чтобы это чего-нибудь было не сложным, быстро воспроизводимым и дающим видимый глазу результат.

(КДПВ)
Ребёнок этот живёт в Питере, городе в котором погоды обычно стоят европейские. Т.е. в середине декабря за окном видишь такую картину:

Правда пока я собирался с мыслями в предновогодней суете — всё немножко изменилось…

Но, не смотря на это, не могу не поделиться мыслью куда ещё можно засунуть закупленные на ebay и бесцельно валяющиеся ардуины. Тем более страна у нас большая и снега на всю не хватает :)
В общем сидел я, скучал по отсутствию снега за окном, а руки чесались чего-нибудь состряпать. Отсюда и родилась мысль собрать из

Приводить схемы подключения нарисованные во Fritzing не буду — кто с ардуиной знаком и так всё поймёт, а кто нет — дак тому полезно по-гуглить да по-яндексить. Но скетчем естественно поделюсь. За него прошу не пинать, ибо образования у меня сплошь гуманитарные.
Скетч
#include <Wire.h> #include <LiquidCrystal_I2C.h> // внешняя библиотека LCD по I2C LiquidCrystal_I2C lcd(0x27,16,2); // адрес экрана 0x27, символов 16, строк 2 int s1; // позиция снежинки №1 int s2; int s3; int s4; int s5; int s6; int s7; int t; // время задержки void setup() { lcd.init(); // инициализируем экран lcd.backlight(); // программно включаем фоновую подсветку lcd.clear(); // чистим экран Serial.begin(9600); t = 600; // устанавливаем время задержки } void loop() { //----------Работаем с первой строкой LCD---------- s1 = random(3); s2 = s1 + random(2,5); s3 = s2 + random(2,5); s4 = s3 + random(2,5); s5 = s4 + random(2,5); s6 = s5 + random(2,5); s7 = s6 + random(2,5); lcd.setCursor(0, 0); lcd.print(" "); //затираем строку пробелами lcd.setCursor(s1, 0); lcd.write('*'); lcd.setCursor(s2, 0); lcd.write('*'); lcd.setCursor(s3, 0); lcd.write('*'); lcd.setCursor(s4, 0); lcd.write('*'); lcd.setCursor(s5, 0); lcd.write('*'); lcd.setCursor(s6, 0); lcd.write('*'); lcd.setCursor(s7, 0); lcd.write('*'); Serial.print (s1); Serial.print (" "); Serial.print (s2); Serial.print (" "); Serial.print (s3); Serial.print (" "); Serial.print (s4); Serial.print (" "); Serial.print (s5); Serial.print (" "); Serial.print (s6); Serial.print (" "); Serial.print (s7); Serial.println (); delay (t); //----------Работаем со второй строкой LCD---------- lcd.setCursor(0, 1); lcd.print(" "); //затираем строку пробелами lcd.setCursor(s1 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s2 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s3 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s4 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s5 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s6 + random (-1, 2), 1); lcd.write('*'); lcd.setCursor(s7 + random (-1, 2), 1); lcd.write('*'); delay (t); }
К сожалению экранчики у меня в наличии только двухстрочные. :( На четырёхстрочном, я думаю, выглядеть будет гораздо интересней (код нужно будет немножко дописать). Кстати, если у вас такие есть — выкладывайте видео в комментариях. Ну и если кто код может сделать более красивым, тоже буду рад видеть в комментариях ;).
Библиотеку для экрана берём отсюда, тк с вашей может и не заработать (испробовано на кошках).
И напоследок видео:
Всем спасибо за внимание и С Новым Годом!
