Читалка ВДИ с дисплеем для Смарт Крота.
|
|
--Zenit-- | Дата: Понедельник, 15.03.2021, 13:49 | Сообщение # 406 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) В этой строчке на HIGH надо заменить? Смотря каким уровнем у вас транзистор открывается.Поставите не то что нужно вибро всё время жужжать будет.
|
|
| |
voffka585 | Дата: Понедельник, 15.03.2021, 13:51 | Сообщение # 407 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Цитата --Zenit-- ( ) Смотря каким уровнем у вас транзистор открывается.Поставите не то что нужно вибро всё время жужжать будет. NPN -высокий включает,низкий выключает!
|
|
| |
--Zenit-- | Дата: Понедельник, 15.03.2021, 14:34 | Сообщение # 408 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) NPN -высокий включает,низкий выключает! Тогда на ваших скринах всё правильно
|
|
| |
voffka585 | Дата: Понедельник, 15.03.2021, 16:24 | Сообщение # 409 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Цитата --Zenit-- ( ) Тогда на ваших скринах всё правильно Всё работает теперь ,ура,спасибо огромное!Теперь проводную буду доделывать.
|
|
| |
--Zenit-- | Дата: Понедельник, 15.03.2021, 16:34 | Сообщение # 410 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) Всё работает теперь ,ура,спасибо огромное!Теперь проводную буду доделывать. Если хотите что бы вибра работала на цветные цели замените в трех местах код "условия работы вибро" на этот,ну и низкий высокий уровень под свой транзистор поправьте.Можете и диапазон ВДИ менять как хотите.
//Условие работы вибро if (Simvol [2] < 1) { digitalWrite( shake, HIGH ); //выключаем вибро } if (vdi <= 0) { digitalWrite( shake, HIGH ); //выключаем вибро } if (vdi >85) { digitalWrite( shake, HIGH ); //выключаем вибро } if (( vdi > 0) && ( vdi <= 85) && ( Simvol [2]>0) && (vb == 1)) { digitalWrite( shake, LOW ); //включаем вибро }
|
|
| |
voffka585 | Дата: Понедельник, 15.03.2021, 16:42 | Сообщение # 411 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Цитата --Zenit-- ( ) Если хотите что бы вибра работала на цветные цели замените в трех местах код "условия работы вибро" на этот,ну и низкий высокий уровень под свой транзистор поправьте.Можете и диапазон ВДИ менять как хотите. //Условие работы вибро
if (Simvol [2] < 1) { digitalWrite( shake, HIGH ); //выключаем вибро } if (vdi <= 0) { digitalWrite( shake, HIGH ); //выключаем вибро } if (vdi >85) { digitalWrite( shake, HIGH ); //выключаем вибро } if (( vdi > 0) && ( vdi <= 85) && ( Simvol [2]>0) && (vb == 1)) { digitalWrite( shake, LOW ); //включаем вибро } То что надо,спасибо,а то перегруз не то для детей,а монетки под катушкой,с вибрацией,самое то!
Подменил,залил,всё красиво,цвет-вибро,железо -молчит!Спасибо.
Читалка отображает заряд батареи крота в процентах?
Сообщение отредактировал voffka585 - Понедельник, 15.03.2021, 17:11 |
|
| |
--Zenit-- | Дата: Понедельник, 15.03.2021, 17:44 | Сообщение # 412 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) Читалка отображает заряд батареи крота в процентах? Да.Можно прикрутить и заряд самой читалки.Делитель на А1 ну и вывести вместо надписи крот смарт
# define pin_V_BAT A1 //Номер пина для считывания напряжения аккумулятора
unsigned long timing; // Переменная для хранения точки отсчета
//установите точные значения резисторов делителя здесь в омах. float r1 = 15000; //Резистор 15K делителя подкоючается к BAT float r2 = 5100; //Резистор 5.1К подключается к GND.Средняя точка к пину А1 ардуино. float voutv; float vinv; float const arefVolt = 1.1f; //внутренне опорное напряжение float vin = 4.2f; //напряжение аккумулятора void setup() { analogReference(INTERNAL); }
void task_0() { if (millis() - timing + 600000 > 600000)// (показания меняются раз в 10 мин) Вместо 600000 подставьте нужное вам значение паузы в миллисекундах. { timing = millis() + 600000; vinv = 0.0f; voutv = 0.0f; voutv = (analogRead(pin_V_BAT) * arefVolt) / 1023; //считаем входное напряжение vinv = voutv / (r2 / (r1 + r2)) ; //поправочная формула для делителя (r2 / (r1 + r2)) } //Вместо myOLED.print("Krot Smart", 36, 0);пишем это myOLED.print("V", 36, 2);//Выводим букву V myOLED.printNumF(vinv, 2, 10, 2);//Выводим напряжение питания в вольтах /Два знака после запятой }
Сообщение отредактировал --Zenit-- - Понедельник, 15.03.2021, 18:13 |
|
| |
voffka585 | Дата: Понедельник, 15.03.2021, 19:44 | Сообщение # 413 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Не могу понять куда копировать,ошибки при верификации
Сообщение отредактировал voffka585 - Понедельник, 15.03.2021, 21:08 |
|
| |
--Zenit-- | Дата: Понедельник, 15.03.2021, 21:17 | Сообщение # 414 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) Не могу понять куда копировать,ошибки при верификации какие ошибки?
|
|
| |
voffka585 | Дата: Вторник, 16.03.2021, 00:08 | Сообщение # 415 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Цитата --Zenit-- ( ) какие ошибки? Все получилось,подсмотрел в скетчах с первых страниц,только вольтаж показывало на Р,делитель не запаял еще!
Пришлось методом тыка,
myOLED.print("V", 74, 2);//Выводим напряжение питания в вольтах myOLED.printNumF(vinv, 2, 48, 2);//Выводим напряжение питания в вольтах
Сообщение отредактировал voffka585 - Вторник, 16.03.2021, 00:09 |
|
| |
--Zenit-- | Дата: Вторник, 16.03.2021, 00:17 | Сообщение # 416 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) myOLED.printNumF(vinv, 2, 48, 2);//Выводим напряжение питания в вольтах Первая 2 это количество знаков после запятой 48 это координата начала строки по горизонтали.Всего 128 точек. Считаем слева направо.Отсчет с нуля. Двойка в конце это координата по вертикали.Считаем сверху вниз всего 64 отчет с нуля Поставьте ноль тогда строка напряжения по вертикали выровняется с буквами A и R
Сообщение отредактировал --Zenit-- - Вторник, 16.03.2021, 00:21 |
|
| |
voffka585 | Дата: Вторник, 16.03.2021, 00:28 | Сообщение # 417 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| Цитата --Zenit-- ( ) Первая 2 это количество знаков после запятой48 это координата начала строки по горизонтали.Всего 128 точек. Считаем слева направо.Отсчет с нуля. Двойка в конце это координата по вертикали.Считаем сверху вниз всего 64 отчет с нуля Поставьте ноль тогда строка напряжения по вертикали выровняется с буквами A и R Завтра поправлю на 0. Я уже думал на стабилитроне индикатор прикрутить)))
Добавлено (16.03.2021, 17:11) ---------------------------------------------
Все заработало но,при 3.9в на батарее 4.20 на экране! Нужно точно измерить сопротивления и прописать в скетче?
Сообщение отредактировал voffka585 - Вторник, 16.03.2021, 17:50 |
|
| |
--Zenit-- | Дата: Вторник, 16.03.2021, 18:26 | Сообщение # 418 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) Все заработало но,при 3.9в на батарее 4.20 на экране!Нужно точно измерить сопротивления и прописать в скетче? Да и если будет неправильно показывать подправьте вот это напряжение float const arefVolt = 1.1f
|
|
| |
voffka585 | Дата: Вторник, 16.03.2021, 19:37 | Сообщение # 419 |
Подполковник
Группа: Пользователи
Сообщений: 124
Статус: Offline
| При 3.9 в батареи прописал мои сопротивления 15570 и 5035 у меня на экране 4.35! float const arefVolt = 1.1f уменьшать или увеличивать?
Сообщение отредактировал voffka585 - Вторник, 16.03.2021, 19:39 |
|
| |
--Zenit-- | Дата: Вторник, 16.03.2021, 20:23 | Сообщение # 420 |
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Статус: Offline
| Цитата voffka585 ( ) При 3.9 в батареи прописал мои сопротивления 15570 и 5035 у меня на экране 4.35!float const arefVolt = 1.1f уменьшать или увеличивать? 4.35/1.1=3.9545. У вас 3.9 значит 3.9/3.9545=0.98 .Вот ваше arefVolt Можно 1.0 поставить.Особая точность не нужна.
Сообщение отредактировал --Zenit-- - Вторник, 16.03.2021, 20:24 |
|
| |