Помогите, люди добрые
Всем ЗдрасссЬте. Очень надеюсь на вашу помощь. Сам я электрик в третьем поколении, но, пока что, для меня тема ардуино это тёмный лес. Как говорится - "я аналоговый человек в цифровом мире". Захотел я сделать бегущее освещение в коридоре. Всё купил, а скетч написать толку не хватает. Для знающих это будет не сложно. Суть такая. Есть лента на 300 диодов 2812b. Нужно, чтобы при подаче питания, они зажигались бегущей дорожкой с 1го до 150го и одновременно со 151го до 300го. Белым светом полной яркости. Я хочу их разделить на две полосы, чтобы при включении они загорались на встречу друг другу.
Если кто-то напишет скетч так, чтобы я просто скопировал его и вставил в окно, я буду очень сильно благодарен. Можно наверное и файлом, только я пока не знаю как его загрузить. Заранее спасибо, и сильно не пинайте, я только учусь.... Всем бобра...
Простое измерение температуры и влажности с выводом вышеописанного на дисплей
Здравствуйте. В этом посте расскажу о том, как сделать простую штуку для измерения температуры и влажности и выводом этого на дисплей.
Для этого нам потребуется:
LCD монитор 1602 i2c;
датчик DHT11;
Плата Arduino Uno/Mega/Nano;
Еще я использовал макетную плату.
Скетч довольно понятно объяснен. Вот он:
#include <DHT.h> // подключаем библиотеку для датчика
#include <Wire.h> // подключаем библиотеку для использования I2C
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для использования I2C с жидкокристаллическим дисплеем
// Инициализируем объект класса DHT
DHT dht(2, DHT11); // сообщаем на каком порту будет датчик
// Инициализируем объект класса LiquidCrystal_I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Указываем адрес дисплея и количество символов в строке и количество строк
void setup() {
// запускаем датчик DHT11
dht.begin();
// подключаем монитор порта
Serial.begin(9600);
// Инициализируем дисплей
lcd.begin(16, 2);
lcd.backlight();
}
void loop() {
// считываем температуру (t) и влажность (h)
float h = dht.readHumidity();
float t = dht.readTemperature();
// выводим температуру (t) и влажность (h) на монитор порта
Serial.print("Humidity: ");
Serial.println(h);
Serial.print("Temperature: ");
Serial.println(t);
// Выводим температуру и влажность на дисплей
lcd.setCursor(0, 0);
lcd.print("Humidity: ");
lcd.print(h);
lcd.setCursor(0, 1);
lcd.print("Temperature: ");
lcd.print(t);
delay(1000);
}
Подключение:
1. LCD монитор 1602 с I2C: Arduino GND –> ЖК-дисплей GND; Arduino 5V –> ЖК-дисплей VCC; Arduino A4 (SDA)–> ЖК-дисплей SDA; Arduino A5 (SCL) –> ЖК-дисплей SCL. После подключения ЖК-дисплея к Arduino, вам потребуется установить и подключить библиотеку LiquidCrystal_I2C для работы с I2C дисплеем. Это можно сделать следующим образом:
1) Откройте Arduino IDE и перейдите во вкладку "Инструменты".
2) Перейдите в меню "Библиотека" и выберите "Управление библиотеками".
3) В поисковой строке введите "LiquidCrystal_I2C".
4) Нажмите кнопку "Установить" рядом с библиотекой "LiquidCrystal_I2C" от Frank de Brabander.
2. Датчик DHT11:
Архив для датчика DHT11: https://drive.google.com/file/d/131vhl3eJOa_6Fvbp3SMCez-BnVB...
Подключать по сути так, остальное подключать по тексту.
Теперь, смотрим что получилось:
Результаты измерений температуры верные, погрешность в полградуса. Причин сомневаться в достоверности показаний влажности у меня нет, ибо никаких других средств измерения влажности не имею. Что бы получить правильный результат измерений, стоит оставить приспособление на минут 5, но можно и меньше.
Спасибо за прочтение, удачи вам. Если остались вопросы, пишите в комментарии. Также в комментарии пишите с идеями для проектов.
Ардуино. Ультразвуковой дальномер и вывод его значений на дисплей
Здравствуйте. В этом посте расскажу как просто сделать забавное приспособление из
УЗ дальномер HC-SR04;
LCD монитор 1602 i2c;
Макетная плата, но необязательно.
Arduino Uno / Arduino Nano / Arduino Mega;
Суть проекта заключается в этом: УЗ дальномер HC-SR04 измеряет расстояние, а LCD монитор 1602 с i2c выводит это расстояние на экран. Здесь скетч для этого проекта, и объяснение что и куда подключать. Скетч имеет пояснения для лучшего понимания происходящего.
Скетч с объяснением:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Адрес экрана 0x27, 16 символов в 2 строки
const int trigPin = 9; // Пин для отправки ультразвукового импульса
const int echoPin = 10; // Пин для принятия отраженного сигнала
void setup() {
lcd.init(); // Инициализация LCD экрана
lcd.backlight(); // Включение подсветки экрана
pinMode(trigPin, OUTPUT); // Устанавливаем пин как выходной
pinMode(echoPin, INPUT); // Устанавливаем пин как входной
Serial.begin(9600); // Инициализация последовательной связи для отладки
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW); // Устанавливаем пин на LOW
delayMicroseconds(2); // Задержка
digitalWrite(trigPin, HIGH); // Устанавливаем пин на HIGH
delayMicroseconds(10); // Задержка
digitalWrite(trigPin, LOW); // Устанавливаем пин на LOW
duration = pulseIn(echoPin, HIGH); // Измеряем длительность импульса
distance = (duration * 0.0343) / 2; // Вычисляем расстояние по времени
lcd.setCursor(0, 0); // Устанавливаем курсор на начало первой строки
lcd.print("Distance: "); // Выводим текст
lcd.print(distance); // Выводим измеренное расстояние
lcd.print(" cm"); // Выводим единицы измерения
delay(500); // Задержка перед следующим измерением
}
Подключение:
1. УЗ дальномер HC-SR04: Подключите пины Trig и Echo к пинам 9 и 10 на Arduino соответственно. Также подключите VCC к 5V на Arduino, а GND к GND на Arduino.
2. LCD монитор 1602 с I2C: Подключите SDA к A4 на Arduino, SCL к A5 на Arduino, VCC к 5V на Arduino, а GND к GND на Arduino.
Спасибо тем, кто прочел, всем удачи. В комментарии пишите что еще стоит сделать. Туда же можете писать вопросы по проекту.
Проблема с самодельным ЧПУ
Добрый день! Вновь прошу помощи у понимающих)
Пересобрал чпу фрезер, начал отладку, все концевики отрабатывали. Была прошивка GRBL 0.9j, решил перепрошить на версию 1.1, чтобы была возможность подключаться телефоном через андроид приложение "GRBL controller". После перепрошивки, при перемещении в позицию "Home", станок перестал реагировать на концевик (пока речь про концевик на оси Z, т.к. при перемещении сначала ищет только по это оси) и перемещается до физического упора. В этом, собственно, у меня и проблема.
Прозвонил кончевик и провод до платы - всё ок. Перепрошил обратно на версию 0.9. Поменял плату ардуино, была в наличии. Купил новую плату shield. Ничего не поменялось.
Наводки на проводку концевиков исключил, т.к. изначально была наводка и в том случае получались ложные срабатывания концевиков, а тут наоборот - не отрабатывает.
Установлено 3 концевика, подключил к свободными пинам оси Z кнопку, при нажатии (во время перемещения в "Home") нет реакции.
Все настройки прописывал какие были изначально, перед первой перепрошивкой. Использовал разные программы (UniversalGcodeSender, grblControl и мобильную GRBL controller) и два разных ПК, с 10 и 11 виндой.
Концевики - NO, обычные механические микрики.
Настройки:
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=3 (dir port invert mask:00000011)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=1 (status report mask:00000001)
$11=0.020 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=25.000 (homing feed, mm/min)
$25=300.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=3.000 (homing pull-off, mm)
$100=2133.280 (x, step/mm)
$101=2133.280 (y, step/mm)
$102=2133.280 (z, step/mm)
$110=700.000 (x max rate, mm/min)
$111=700.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=30.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)
Буду благодарен за идеи.
Проблема решена: Как и предполагали некоторые люди, в прошивке были заменены местами пины - Z+ поменяли местами с Spn_En.
Всем спасибо!
Программирование микроконтроллеров - это увлекательно!
Учитывая, что в "вот это вот всё" я убежал, чтобы развлечься во время, свободное от корпоративщины с дотнетом, сиквелом, иисом и прочими жирными технологиями на много юнитов рэковой стойки, то и на полноценной ардуиновской атмеге328 я надолго не задержался. Купил горстку attiny 13 и 85 и программатор, наговнокодил, пару батареек подключил и "Лампочка горит, дурачок радуется!"
Моему Wall-e уже 9 лет
Всем привет, моему Wall-E уже почти 9 лет и он уже давно пылится на полке, но интерес к нему все еще есть!! Это радует! Что же, если это кому то поможет или подтолкнет к каким-то своим поделкам я буду очень рад.
Я выложу в доступ все что у меня по нему уцелело. Там не так много материалов и нету схем, так как все это делалось интуитивно и в основном держалось в голове, но код очень прост и, местами даже с комментариями, вы без проблем сможете все воссоздать из него.
Не пугайтесь большого количества проводов - для того что показано в его техно демке многое не нужно, что то делалось на вырост, что то просто потому что было и с этим хотелось научиться работать.
Задумывалось гораздо больше возможностей, но моего запала тогда на это не хватило, а сейчас уже лучше начать с нуля.
Наверное это был один из самых интересных моих проектов, и я бы с удовольствием его продолжил, если бы это не было так затратно…
Сохранившиеся материалы - https://disk.yandex.ru/d/0jdj3X1KBP94sw
Bloxa (самое начало работ, маленькая тележка)- https://youtu.be/w3YrngF8gpA
Анимация глаз - https://youtu.be/oDjBNKMvC-0
Та самая демка которая привлекла много внимания. Демо 3- https://youtu.be/pfu-3lwulf4
Как считаете мне стоит его продолжить и сделать v2?
Что бы вы добавили- поменяли?
Готовы поддержать меня?