Мой сайт
Форма входа
Поиск
Мини-чат
Статистика
Четверг, 26.12.2024, 16:17
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
Читалка ВДИ с дисплеем для Смарт Крота. - Страница 28 - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Читалка ВДИ с дисплеем для Смарт Крота.
--Zenit--Дата: Понедельник, 15.03.2021, 13:49 | Сообщение # 406
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: Offline
Цитата voffka585 ()
В этой строчке на HIGH надо заменить?
Смотря каким уровнем у вас транзистор открывается.Поставите не то что нужно вибро всё время жужжать будет.
 
voffka585Дата: Понедельник, 15.03.2021, 13:51 | Сообщение # 407
Подполковник
Группа: Пользователи
Сообщений: 124
Награды: 2
Репутация: 2
Статус: Offline
Цитата --Zenit-- ()
Смотря каким уровнем у вас транзистор открывается.Поставите не то что нужно вибро всё время жужжать будет.
NPN -высокий включает,низкий выключает!
 
--Zenit--Дата: Понедельник, 15.03.2021, 14:34 | Сообщение # 408
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: Offline
Цитата voffka585 ()
NPN -высокий включает,низкий выключает!
Тогда на ваших скринах всё правильно
 
voffka585Дата: Понедельник, 15.03.2021, 16:24 | Сообщение # 409
Подполковник
Группа: Пользователи
Сообщений: 124
Награды: 2
Репутация: 2
Статус: Offline
Цитата --Zenit-- ()
Тогда на ваших скринах всё правильно
Всё работает теперь ,ура,спасибо огромное!Теперь проводную буду доделывать.
 
--Zenit--Дата: Понедельник, 15.03.2021, 16:34 | Сообщение # 410
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: 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
Награды: 2
Репутация: 2
Статус: 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
Награды: 32
Репутация: 48
Статус: 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
Награды: 2
Репутация: 2
Статус: Offline
Не могу понять куда копировать,ошибки при верификации

Сообщение отредактировал voffka585 - Понедельник, 15.03.2021, 21:08
 
--Zenit--Дата: Понедельник, 15.03.2021, 21:17 | Сообщение # 414
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: Offline
Цитата voffka585 ()
Не могу понять куда копировать,ошибки при верификации
какие ошибки?
 
voffka585Дата: Вторник, 16.03.2021, 00:08 | Сообщение # 415
Подполковник
Группа: Пользователи
Сообщений: 124
Награды: 2
Репутация: 2
Статус: Offline
Цитата --Zenit-- ()
какие ошибки?
Все получилось,подсмотрел в скетчах с первых страниц,только вольтаж показывало на Р,делитель не запаял еще!


Пришлось методом тыка,

myOLED.print("V", 74, 2);//Выводим напряжение питания в вольтах
myOLED.printNumF(vinv, 2, 48, 2);//Выводим напряжение питания в вольтах

Прикрепления: 7803780.jpg (59.3 Kb) · 4092812.jpg (69.9 Kb)


Сообщение отредактировал voffka585 - Вторник, 16.03.2021, 00:09
 
--Zenit--Дата: Вторник, 16.03.2021, 00:17 | Сообщение # 416
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: 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
Награды: 2
Репутация: 2
Статус: Offline
Цитата --Zenit-- ()
Первая 2 это количество знаков после запятой48 это координата начала строки по горизонтали.Всего 128 точек. Считаем слева направо.Отсчет с нуля.
Двойка в конце это координата по вертикали.Считаем сверху вниз всего 64 отчет с нуля
Поставьте ноль тогда строка напряжения по вертикали выровняется с буквами A и R
Завтра поправлю на 0.
Я уже думал на стабилитроне индикатор прикрутить)))


Добавлено (16.03.2021, 17:11)
---------------------------------------------

Все заработало но,при 3.9в на батарее 4.20 на экране!
Нужно точно измерить сопротивления и прописать в скетче?
Прикрепления: 1423832.png (265.2 Kb)


Сообщение отредактировал voffka585 - Вторник, 16.03.2021, 17:50
 
--Zenit--Дата: Вторник, 16.03.2021, 18:26 | Сообщение # 418
Генералиссимус
Группа: Пользователи
Сообщений: 1562
Награды: 32
Репутация: 48
Статус: Offline
Цитата voffka585 ()
Все заработало но,при 3.9в на батарее 4.20 на экране!Нужно точно измерить сопротивления и прописать в скетче?
Да и если будет неправильно показывать подправьте вот это напряжение float const arefVolt = 1.1f
 
voffka585Дата: Вторник, 16.03.2021, 19:37 | Сообщение # 419
Подполковник
Группа: Пользователи
Сообщений: 124
Награды: 2
Репутация: 2
Статус: 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
Награды: 32
Репутация: 48
Статус: 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
 
Поиск:


Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz