Вольтметер I2C 096

thesatellite
Offline
Зарегистрирован: 22.07.2017

Господа. Суть такая. Значит имеется I2C дисплей, аккум на 3.7 вольта от сотового на 2900 и зарядка от повер банка (такая простятская китайская) на аккум 18650 (по моему на мини ЮСБ). Так вот скетч

#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);



void setup() {

// initialize serial communication at 9600 bits per second:

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 

display.clearDisplay();

}



// the loop routine runs over and over again forever:

void loop() {

// read the input on analog pin 0:

display.setCursor(55,10);

display.setTextSize(3);

display.clearDisplay();

display.setTextColor(WHITE);

int sensorValue = analogRead(A0);

// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):

float voltage = sensorValue * (5.0 / 1023.0);

// print out the value you read:

display.println(voltage);

display.setCursor(0,0);

display.setTextSize(1);

display.println("VOLTMETER_BANK");

display.display();

}



проблема такая: LCD кажет на выходе 5 вольт ровно, а на A0 надо подавать напряжение для того что бы LCD показывал напряжение. Тестором тукаю во всех точках не более 3.7 вольт. Какого Хуанхе? What in mistik?





Дополню отзыв: Подключил напряжение с внешнего источника питания - всё измеряет.

 

 

https://youtu.be/PHg_ou8pR2s

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, у Вас же питание 3.7В, так? А в скетче Вы почему-то считаете, что оно у Вас 5В.

запомните, когда Вы вызываете analogRead - результат 1023 означает на 5В, а "напряжение пиатния" - уж какое есть. Понятно?

Кстати, напряжение питания тоже можно измерить самой Ардуиной. А когда измерите, уже тогда считать что там с analogRead прилетело.

P.S. Скетч Ваш не особо читал и читать не буду, пока не вставите его как положено.

 

thesatellite
Offline
Зарегистрирован: 22.07.2017

https://youtu.be/56PudpDXiyM. Вот видео 

thesatellite
Offline
Зарегистрирован: 22.07.2017

И, да, если производить замер с "внешнего" источника, то напряжение показывает точно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, вот просто поймите и запомните фразу, которую я Вам сказал: "когда Вы вызываете analogRead - результат 1023 означает на 5В, а "напряжение пиатния" - уж какое есть".

Поэтому правильный вотльтметр делается так:

1. Замерять напряжение пиатния (и запомнить)

2. замерять что там на пине

3. Расчитать напряжение на пине по той же формуле, но используя в ней не 5В, а реально иземеренное напряжение питания.

thesatellite
Offline
Зарегистрирован: 22.07.2017

Подсоби, друг, конктетным примером/скетчем. А если резистор на A0 переменный? Что то изменется? Если сделать настройку на напряжение которое выходит с аккумулятора? Будет измерять? На 10кОм к примеру

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так примеров же навалом. Вот, например - http://tim4dev.com/arduino-secret-true-voltmeter/ готовое решение

thesatellite
Offline
Зарегистрирован: 22.07.2017

Пойми, я чайник))) Мне нужно готовле решение)) Посему я и обратился на сей светский клуб)))

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

thesatellite пишет:

Пойми, я чайник))) Мне нужно готовле решение)) Посему я и обратился на сей светский клуб)))

у меня на советской кухне жили чайники - спасибо империализму и их химическому оружию. извёл.

37797973.jpg

thesatellite
Offline
Зарегистрирован: 22.07.2017

Приколист))) 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

В том примере, что я дал и есть готовое решение. Чего ещё-то надо?

thesatellite
Offline
Зарегистрирован: 22.07.2017

Всё Ок, буду разбираться и писат скетч