Возник такой вопрос: Каким образом, используя Arduino можно узнать уровень заряда аккумулятора (как питающего саму Arduino, так и внешнее питание). Приводится много разных схем, в которых горит светодиод в случае разрядки, например: http://kazus.ru/shemes/showpage/0/1251/1.html Как его можно переделать, чтобы в коде скетча Arduino можно было считать показания с помощью analogRead? Либо это делается как-то по-другому? Мне кажется можно как-то использовать делитель напряжения, о котором Jeremy Blum упоминал в лекциях?
Использовать внешний источник опорного напряжения и делитель напряжения. Брать напряжение с делителя и сравнивать его с опорным напряжением. Как-то так.
Эмм, простите, что напрягаю, Вы могли бы привести схему, был бы очень признателен. Я так на словах не могу сориентироваться, что куда подключать.
Ааа.. До меня что-то не сразу дошло. Если аккумулятор у вас больше 8 вольт, то можно использовать встроенный в ардуино регулятор напряжения как источник опорного напряжения. В таком случае можно обойтись одним делителем напряжения. Вот это почитайте «Делитель напряжения» Расчитываем делитель напряжения таким образом, чтобы у нас при максимальном заряде аккумулятора на Vout было вольта 3-4. Ну и потом analogRead этого Vout, и по формуле из статьи узнаете, какое напряжение на Vcc
То есть вы предлагаете сделать вот так? У меня в танк помещается всего 4 аккумулятора, в полной зарядке они в сумме дают 5.5V Получается, что резисторы еще и ток будут жрать?
Резисторы будут ток жрать. Чтоб жрали как можно меньше, нужно, чтоб они были больших номиналов. На 5,5 вольт такое вряд-ли получится. В при таком раскладе регулятор напряжения не будет давать постоянное напряжение, оно будет меньше 5 В. Остаётся только мой первый вариант
Использовать источник опорного напряжения. Вот этой функцией воспользоваться: http://arduino.cc/en/Reference/AnalogReference#.Uyk-lfl_sXw Во. Можно воспользоваться встроенным в ATMega328 источником опорного напряжения в 1.1 В. Если это сделать, то все аналоговые входы будут измерять напряжение от 0 до 1,1 В (1023=1,1В). Далее нужен делитель, который будет давать 1 В при напряжении на батарейках 5,5 В. Ну и мерить напряжение с этого делителя. Т.е. где-нибудь в setup делаем Код (Text): analogReference(INTERNAL); И всё. Скорее всего, если потом нужно будет мерить относительно 5 В, то можно сделать перед измерением Код (Text): analogReference(DEFAULT); // 1023=5В int a = analogRead(a0); ///......... //И обратно 1023=1,1В analogReference(INTERNAL); // 1023=1.1В int currentVoltage = analogRead(a2); //Смотрим напругу на батарейках
Делитель у вас тогда получается (по схеме из вики) R2=2,2 кОм, R1=10 кОм. Как раз при 5,5 В напряжения получается Vout=0,99 В А ваша схема какая-то.. странная Чего-то в ней не хватает
я запутался совсем я не могу понять куда этот делитель вставлять. Мне же надо на всех моих компонентах 5Вольт. Вот так:
Моторы и ардуино, я так просто для наглядности вставил, я имел ввиду периферию всякую. Буду пробовать, спасибо, отпишусь как сделаю