Вольт метр DC на светодиодах
- Войдите на сайт для отправки комментариев
Пнд, 11/11/2013 - 00:23
Помогите доделать вольтметр
аком 17,2v
имею RGB светодиод
нужно чтобы с 17,2в до 15в горел зеленый
потом с 15 до 14 синий
с 14 до 13 - зеленый и красный
с 13 до 12 - красный
с 12 до 0 - красный моргающий
написал небольшой код
поставил резисторы чтобы с 17,2 вольт показывал 4,5
но почему то когда 5 вольт на блоке питания поднимаю (в это время через резистор 1,5 вольт идет) - горит зеленый цвет
то есть он реагирует только с 0 до 5 вольт (на блоке питания)(через резисторы 0,5 - 3v)
в общем жостко запутался, помогите дописать код и подскажите с каким номиналом использовать резистор.
int sensePin = 0; int ledPin = 9; int ledPin2 = 10; void setup() { analogReference(DEFAULT); pinMode (ledPin, OUTPUT); pinMode (ledPin2, OUTPUT); } void loop() { int val = analogRead(sensePin); if(val <1000) digitalWrite(ledPin, HIGH); else digitalWrite(ledPin, LOW); if(val >1000)digitalWrite(ledPin2, HIGH); else digitalWrite(ledPin2, LOW); }
Почитайте http://www.arduino.ru/forum/obshchii/kak-sdelat-voltmetr
Читал, неразобрался, мне нужно составить не выход на дисплей, а просто цикл со светодиодами, но как совместить коды не в курсе( новичок(
Может проблема в том что Вы не указали порт как входной? (sensePin , INTPUT);
(через резисторы 0,5 - 3v)
По какой схеме Вы подключали всё это, по схеме делителя напряжения?
да интересно бы увидеть схему делителя, если он конечно есть
а лучше всю схему
и насколько вижу по коду у вас всего 2 выхода задействовано. а в RGB и по хотелке 3))
Порт указан :) все срабатывает, только диапазон от 0 до 5 через резистор, хотя должно быть от 0 до 23
эта вся схема которую мне удалось осилить:)
Да там 2, но 3тий дописать не проблема, мне бы разобратся как сделать так чтобы я мог регулировать с 0 до 18, напряжение, но чтобы в аруино поступало от 0 до 5
Опытным путем подобрал резисторы под Ваш случай резисторы R1-240 Ом, R2- 680 Ом. (в действительности сопротивление должно быть на порядки больше, но у нас пример)))
Подставим их в форму делителя напряжения -
Uвых=Uвх*(R1/ (R1+R2) )=17.2*(240 / (240+680))=17.2 * 0,26 = 4,48 В
Для того чтобы преобразовать это значение в показания датчика воспользуемся другой формулой -
Value=(Voltage/5)*1023=(4,48/5)*1023 = 916
Второй светодиод загорится только в том случае, когда напряжение будет больше, чем способен выдать Ваш аккумулятор - 17,2 В
не обязательно на выходе должно быть 5В это стереотип. вам с вашими пределами через 1В можно и 3 и 4 вольта. если вы сделаете ровно 5 вольт то при превышении входного больше 17.2 рискуете сжечь порт. а вдруг у вас скачок будет?
тут надо рассматирвать все ситуации:
1. все хорошо на входе от 17,2 до 0. светодиоды моргают или светятся и все хорошо.
2. не все хорошо. поступило напряжение выше 17,2. что делать программе? если вы не пропишите этот случай у вас ничего не загорится, или не поменяется что еще хуже (все зависит от программы), и вы даже не будете знать что что то случилось
3. совсем плохо. перепутали полярность. порт дохнет ничего не работает
и еще. если вы например с аккумулятора будете питать например мотор (думаю так и есть) то у вас еще куча шума будет вместо стабильного например 17.2. то есть после делителя неплохо бы поставить конденсатор для сглаживания. я бы еще стабилитрон поставил если не уверен точно что не будет напряжения выше максимального
и еще. от чего питается ардуина? вы для такой простой задачи целый модуль ардуины ставить будете?
Нет, мотора не будет. Будет просто индикация заряда батареи. По другим потрам будут подключены реле которые будут долеко от чипа, и помехи не будут ловить.
Порт цел, полярность не путал
Спасибо большое Lipt0n ) на днях обязательно куплю резисторы и заморочусь :)
Спасибо большое Lipt0n ) на днях обязательно куплю резисторы и заморочусь :)
Пожалуйста.
На схеме R1 и R2 ПЕРЕПУТАНЫ!
Учтите что номиналы не должны быть такими же(я просто подобрал номиналы для примера), главное чтобы отношение R1/(R1+R2) было равно 0,26 , номиналы же должны быть десятки КОм - как в теме, ссылку на которую Вам давали. Если испольщовать номиналы как в примере - через них пойдет большой ток и Вы рискуете спалить микросхему.
*Вобще в теории - сопротивление идеального вольтметра стремится к бесконечности.
UPD. Если у Вас есть резисторы, но никак не получается получить 0,26 - можете воспользоваться последовательным и/или параллельным соединением рещисторов.
В случае последовательного соединения - номиналы сопротивлений складываются.
В случае параллельного - считается по формуле R=(R1*R2)/(R1*R2)
Вот онлайн калькулятор - http://goo.gl/55WjpK