подскажите пожалуйста опять таки по миллиампреметру.
на порту A4 на данный момент 45mV (с шунта)
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
За меня считать конечно не нужно если нет желания но хотя бы подскажите - с внешним опорником на 5 вольт мне не видать данных с этого порта при таком раскладе?
#include <LiquidCrystal.h>
#include <LcdBarGraph.h>
#include <Wire.h>
#include "Sodaq_DS3231.h"
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // для экрана RS, E, DB4, DB5, DB6, DB7
unsigned long zamerV = 900; // интервал для змеров показаний
unsigned long startlog = 5000; // интервал для логирования показний
unsigned long pauseOff = 60000; // интервал для паузы перед выключением заряда
unsigned long previousMillis = 0; // время последнего задействования замеров
unsigned long previousMillis2 = 0; // время последнего задействования логирования
unsigned long previousMillis3 = 0; //время последнего задействования паузы перед отключением зарядки
float Vin = 0; // переменная для напряжения(для замера)
float Uin = 0; // переменная для тока(для замера)
// для карты памяти SD
#include <SPI.h>
#include <SD.h>
const int chipSelect = 22; // выход для CS 2
File myFile; // создаю мой файл для карты памяти
///// ПЕРЕМЕННЫЕ ДЛЯ ИЗМЕРЕНИЯ
float VinOld; // переменные для усреднения напряжения
float VinSmooth;
float UinOld; // переменные для усреднения тока
float UinSmooth;
float UinShkal; // переменная для шкалы
float Uinzaryad = 40; // переменная для контроля зарядки, отключение пускателя
byte nomerP = 0; //флаг , определяет номер програмы, какой аккумулятор нужно заряжать.
boolean vse = false; //флаг , определяет заряжен ли аккум до своего максимума
/////ДЛЯ ЧАСОВ SDA= A4 SCL= A5 +5мсс gnd
//////////КНОПКИ
#define Akkum1 24 // ВХОД кнопка запуска заряда акумулятора 1 (10 пин пробит именно на шилде)
#define Akkum2 25 // ВХОД кнопка запуска заряда акумулятора 2
#define Akkum3 26 // ВХОД кнопка запуска заряда акумулятора 3
boolean BTNFlag1 = false;// флаг кнопки запуска аккумулятора 1
boolean BTNFlag2 = false;// флаг кнопки запуска аккумулятора 2
boolean BTNFlag3 = false;// флаг кнопки запуска аккумулятора 3
///////////ВЫХОДА
#define relay1 27 //реле на 27 пине
LcdBarGraph lbg(&lcd, 16, 0, 1); // -- создаю графбар: перая цифра-количество полных кубиков в шкале, вторая:от куда начинается, третья: по высоте номер строки (column 1)
void setup()
{
pinMode (Akkum1, INPUT); //кнопка запуска 1 аккумулятора
pinMode (Akkum2, INPUT); //кнопка запуска 2 аккумулятора
pinMode (Akkum3, INPUT); //кнопка запуска 3 аккумулятора
pinMode (27, OUTPUT); //выход на реле№1 основное включает зарядку
digitalWrite(relay1, HIGH);
rtc.begin(); //иници часов
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROVER UROVEN ");
lcd.setCursor(1, 1);
lcd.print(" DISTILATA! ");
lcd.clear();
analogReference(EXTERNAL); // переключаю на внешнее AREF
pinMode(2, OUTPUT); // специально иначе логировать не будет
Serial.begin(9600);
while (!Serial) // если открывается порт на пк
{
; //Ждём инициализации серийного порта. Нужно для Leonardo
}
Serial.print("Initializing SD card...");
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
}
void loop()
{
// состояние КНОПОК ЗАПУСКА заряда аккумуляторов
if (digitalRead(Akkum1) == HIGH)
BTNFlag1 = true; //если КНОПКА ЗАПУСКА аккумулятора 1 нажата - флаг верно
else
BTNFlag1 = false;// иначе - неверно.
// состояние КНОПОК ЗАПУСКА заряда аккумуляторов
if (digitalRead(Akkum2) == HIGH)
BTNFlag2 = true; //если КНОПКА ЗАПУСКА аккумулятора 1 нажата - флаг верно
else
BTNFlag2 = false;// иначе - неверно.
// состояние КНОПОК ЗАПУСКА заряда аккумуляторов
if (digitalRead(Akkum3) == HIGH)
BTNFlag3 = true; //если КНОПКА ЗАПУСКА аккумулятора 1 нажата - флаг верно
else
BTNFlag3 = false;// иначе - неверно.
//////ПРИМЕР формулы АЦП
/*(analogRead(A5) * 1.1) / 10.23;
float переменная = (читаем нужный аналоговый вход, умножаем на опорное напряжение)
делим на коефициент делителя
С усреднением совсем просто. Вводим две переменных для усреднённого значения
и по простой формуле усредняем. 15 и 16 это глубина усреднения (N и N-1).
Чем больше N тем лучше усредняется,но тем медленнее реакция. Начать эксперементы
с усреднением можно с 4 (3 и 4 вместо 15 и 16)
Vin = (analogRead(A5) * 1.1) / 10.23;
VinOld=VinSmooth;
VinSmooth=(15.0*VinOld+Vin)/16.0;
*/
/////////////////////вытаскиваю данные с часов:
DateTime now = rtc.now(); //Получить текущую дату-время
if(millis() - previousMillis > zamerV)
{
previousMillis = millis();
float Vin = ((float)analogRead(A3)) * 0.12009495880; //5./1023./ 4.2 * (99.6 + 4.2); // вычисление ацп напряжение на А5
VinOld=VinSmooth; // приравнивание переменных друг другу
VinSmooth=(2.0*VinOld+Vin)/3.0; // формула для усреднения показания
float Uin = (analogRead(A4)*5/1023)/0.00075; //// вычисление тока на А10
Serial.println(UinSmooth);
UinOld=UinSmooth;
UinSmooth=(2.0*UinOld+Uin)/3.0; // формула для усреднения показания
}
lcd.setCursor(0, 0);
lcd.print("V=");
lcd.print(VinSmooth,1); // вывожу усредненные показания для напряжения.
lcd.print(" ");
lcd.setCursor(7, 0);
lcd.print("A=");
lcd.print(UinSmooth,1); // вывожу усредненные показания для тока
lcd.print(" ");
lcd.setCursor(14, 0);
lcd.print("N");
lcd.print(nomerP);
UinShkal = 100 - UinSmooth;
lbg.drawValue( UinShkal, 100); // -- рисую график из данных по току, после формул усреднения от
}
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
За меня считать конечно не нужно если нет желания но хотя бы подскажите - с внешним опорником на 5 вольт мне не видать данных с этого порта при таком раскладе?
Ну ладно, раз хотите, считайте сами: 45мВ/5000мВ*1023=? единиц АЦП.
Только вот я не понимаю, зачем вместо
BTNFlag1 = digitalRead(Akkum1);
писать
if (digitalRead(Akkum1) == HIGH)
BTNFlag1 = true; //если КНОПКА ЗАПУСКА аккумулятора 1 нажата - флаг верно
else
BTNFlag1 = false;// иначе - неверно.
подскажите пожалуйста опять таки по миллиампреметру.
на порту A4 на данный момент 45mV (с шунта)
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
это исходный вопрос на пару постов выше.
но зная себя (как я неправильно ставлю вопросы)
Спрашиваю подробней:
-загнав A4 в сериал монитор что я должен увидеть в нем?, при том что на данный момент на данный сериал идет 45mV и опорное напряжение установленно от внешнего LM4040 на 5 вольт. Спросил потому что думаю что при таком сравнении (45mV , 5V) возможно там ничего и не увижу. От этого делаю вывод что сделал большой промах когда ушел от внутреннего 1.1 вольта. а ушел из-за того что на втором порту меряю напряжение DC 100 вольт и при опорном внутреннем на 1.1 вольта большая погрешность и нелинейность, да и питание естественно портит всю картину. сейчас с LM4040 показания вольт стабильные, но на амперметре обломался... в общим вот так.
А по поводу 9-ти томов, я понял. При чем еще по первой строчке, дальше можно было не утруждаться, так как вы спротиворечили сами себе: "Алгоритм простой: не пишите лишнего." )))
действительно, подключение поменял и все стало на свои места.
Друзья, что-то не могу найти программу Calc_Arduino. В указанной папке что-то я ее не нашел: http://yadi.sk/d/CXjuENmaEEwun
Я ее пропустил или ее там нет? Дайте ссылку.
действительно пропала. странно. может снова яндекс диск заглючил. она там была
По описанию полезная вещь. Бы ло бы не плохо ее иметь. Может на Гугл диск ее?
может у меня антивирус ее удалил
:(
В сети не смог ее найти.
http://arduino.ru/forum/obshchii/adc-calc
вот тема. может у автора она осталась
У меня эта прога осталась. Держите кому надо. Если автор не против ))
https://drive.google.com/open?id=0B4K2v83npT_DdFBEZWJzTkdUclk
Присибо! Програмка пригодилась. Вот что у меня получилось: https://youtu.be/lgoz3rpJOXE
Заказал с Али LM4040CIZ. Попробую через него организовать замер для вольтей. Ну а для милливольт придется подыскать другое.
Добрый вечер народ!
подскажите пожалуйста опять таки по миллиампреметру.
на порту A4 на данный момент 45mV (с шунта)
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
За меня считать конечно не нужно если нет желания но хотя бы подскажите - с внешним опорником на 5 вольт мне не видать данных с этого порта при таком раскладе?
на порту A4 на данный момент 45mV (с шунта)
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
За меня считать конечно не нужно если нет желания но хотя бы подскажите - с внешним опорником на 5 вольт мне не видать данных с этого порта при таком раскладе?
Ну ладно, раз хотите, считайте сами: 45мВ/5000мВ*1023=? единиц АЦП.
Только вот я не понимаю, зачем вместо
писать
и так 3 раза?
Все элементарно посто:)
Пару месяцев тому назад я и того сложнее использовал комбинации.
Теперь буду использовать вашу комбинацию!
Синтаксиз вещь не сложная, но еще не встретил литературы типа: вместо этого - используйте вот так.
Вот и выдергиваешь информацию вот так!
А по поводу АЦП- должен ловить 9207?
Синтаксиз вещь не сложная, но еще не встретил литературы типа: вместо этого - используйте вот так.
Алгоритм простой: не пишите лишнего.
Ну а для конкретики, думаю, можно будет издать трехтомник с советами типа:
вместо
пишите
и вместо
тоже пишите
и еще 3 тома комбинаций, вместо каждой из которых следует писать
Вот и выдергиваешь информацию вот так!
А по поводу АЦП- должен ловить 9207?
Не понял, что это значит.
Добрый вечер народ!
подскажите пожалуйста опять таки по миллиампреметру.
на порту A4 на данный момент 45mV (с шунта)
показания нулевые, что-то я уперся и не могу самостоятельно пересчитать что должно быть((
это исходный вопрос на пару постов выше.
но зная себя (как я неправильно ставлю вопросы)
Спрашиваю подробней:
-загнав A4 в сериал монитор что я должен увидеть в нем?, при том что на данный момент на данный сериал идет 45mV и опорное напряжение установленно от внешнего LM4040 на 5 вольт. Спросил потому что думаю что при таком сравнении (45mV , 5V) возможно там ничего и не увижу. От этого делаю вывод что сделал большой промах когда ушел от внутреннего 1.1 вольта. а ушел из-за того что на втором порту меряю напряжение DC 100 вольт и при опорном внутреннем на 1.1 вольта большая погрешность и нелинейность, да и питание естественно портит всю картину. сейчас с LM4040 показания вольт стабильные, но на амперметре обломался... в общим вот так.
А по поводу 9-ти томов, я понял. При чем еще по первой строчке, дальше можно было не утруждаться, так как вы спротиворечили сами себе: "Алгоритм простой: не пишите лишнего." )))
хм
автомобильная тематика
спасибо
можно подробней?
есть примеры?
вернулся к проблеме, не нашел инфы чето((