Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Аппаратная платформа Arduino для автоматизации наших процессов

Форум самогонщиков Автоматика
1 ... 15 16 17 18 19 20 21 ... 64 18
m16 Модератор Тамбов 1.9K 1K
Отв.340  02 Апр. 13, 20:01
Поэтому если мы Vref застабилизируем, а Vcc будет плавать,Sambedded, 02 Апр. 13, 07:49
это с какого будуна Vcc будет плавать? если только  запитать по-китайски с ограничивающим стабилитроном  и  от китайской зарядки, немудрено.

Чтобы этого избежать ACS712 надо от опорника тоже запитать.Sambedded, 02 Апр. 13, 07:49
это что то новое в схемотехнике.

Sambedded, ты парень вроде грамотный , но акценты расставляешь неправильно имхо.
Sambedded Кандидат наук Vancouver 376 87
Отв.341  02 Апр. 13, 20:31, через 31 мин
Ну если Vcc у нас стабильно, то зачем нам еще дополнительный источник опорного напряжения.
Достаточно LC фильтра.

А Vcc  , даже при наличии "нормального" стабилизатора, заметно плывет, например,от изменения температуры.
Sambedded Кандидат наук Vancouver 376 87
Отв.342  02 Апр. 13, 20:40, через 9 мин
это с какого будуна Vcc будет плавать? если только  запитать по-китайски с ограничивающим стабилитроном 
m16, 02 Апр. 13, 20:01

В данной схеме предполагается питание от внешнего стабилизированного источника 5v , а стабилитрон в цепи питания стоит для защиты.
m16 Модератор Тамбов 1.9K 1K
Отв.343  02 Апр. 13, 21:37, через 57 мин
Ну если Vcc у нас стабильно, то зачем нам еще дополнительный источник опорного напряжения.Sambedded, 02 Апр. 13, 20:31
no comment.
Sambedded Кандидат наук Vancouver 376 87
Отв.344  02 Апр. 13, 22:21, через 45 мин
Все же ответь - если ты утверждаешь что напряжение питания так стабильно,  то зачем по твоему нужен источник опорно напряжения?
ironman Академик Синегорье 5.2K 2.7K
Отв.345  03 Апр. 13, 05:35
Вчера вечером подключил ACS712 на 20А без нагрузки, питание полностью Vcc и Vfer от USB.
Просто тупо взял первый пример по чтению из аналогово порта, так там оказалось, что и порт А0 совпал )))
// the setup routine runs once when you press reset:
void setup() {
 // initialize serial communication at 9600 bits per second:
 Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
 // read the input on analog pin 0:
 int sensorValue = analogRead(A0);
 // print out the value you read:
 Serial.println(sensorValue);
 delay(1);        // delay in between reads for stability
}

Никакого ожидаемого 512+-2 при чтении на холостом ходу я не получил, тестировал всего несколько минут, но результат стабильный 404, 405, 406, т.е. 405+-1
В итоге результат порадовал, но почему получилось при чтении 405, а не ожидаемые 512, ведь Vcc=Vfer Непонимающий
Напряжение питания стрелочным тестером замерил 4.6v

ard1.jpg
Ard1. Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
Sambedded Кандидат наук Vancouver 376 87
Отв.346  03 Апр. 13, 06:50
Странно.
При напряжении питания и, соответственно, Vref =4.6В  Значение 405 на АЦП должно соответствовать примерно 1.8В

А какое напряжение у тебя на выходе ACS712? При 0-м токе должно быть 2.3В
Если у тебя там 1.8 попробуй замкнуть входы у 712й.

ironman Академик Синегорье 5.2K 2.7K
Отв.347  03 Апр. 13, 07:57
А какое напряжение у тебя на выходе ACS712? При 0-м токе должно быть 2.3В
Если у тебя там 1.8 попробуй замкнуть входы у 712й.Sambedded, 03 Апр. 13, 06:50
Вот и я думаю, что странно...
Напряжение на выходе только поздно вечером или завтра. Вот только замыкание входов не думаю, что как-то повлияет на датчик холла. Магнитов тоже вроде рядом нигде нет, хотя нужно будет в другой комнате попробовать.
m16 Модератор Тамбов 1.9K 1K
Отв.348  03 Апр. 13, 10:37
питание полностью Vcc и Vfer от USB.
712.jpg
712. Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
Sambedded Кандидат наук Vancouver 376 87
Отв.349  03 Апр. 13, 11:20, через 44 мин Автор был пьяный
m16Обратись к первоисточникам и ты все сам (может быть) поймешь:


ADC Voltage
Reference
The reference voltage for the ADC (VREF) indicates the conversion range for the ADC. Single
ended channels that exceed VREF will result in codes close to 0x3FF. VREF can be selected as
either AVCC, internal 2.56V reference, or external AREF pin.

Table 74. Voltage Reference Selections for ADC
REFS1 REFS0  Voltage Reference Selection
0    0      AREF, Internal Vref turned off
0    1      AVCC with external capacitor at AREF pin
1    0      Reserved
1    1      Internal 2.56V Voltage Reference with external capacitor at AREF pin
m16 Модератор Тамбов 1.9K 1K
Отв.350  03 Апр. 13, 12:14, через 54 мин
это пиздец.

а)после аппаратного сброса    (0 0   AREF, Internal Vref turned off)  Voltage Reference Selections  ADC  подключен к выводу контроллера  AREF

б) открываем схему

ard.jpg
Ard. Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.


что я вижу - AREF болтается в воздухе

в) возможно  Voltage Reference автоматом куда то поключается при вызове функции , в таком случае ткнуть вольтметром на  AREF и убедиться что там
Sambedded Кандидат наук Vancouver 376 87
Отв.351  03 Апр. 13, 13:10, через 57 мин
это пиздец.
m16, 03 Апр. 13, 12:14

Что-ты неадекватный какой-то, ты эта, таблеточки какие попей, можа полегчае...

что я вижу - AREF болтается в воздухе

Он не болтается а, шунтирован конденсатором, как и положено по даташиту. При инициализации ардуиновских библиотек по дефолту в ADMUX прописывается REFS1-0, REFS0-1 те "AVCC with external capacitor at AREF pin"

ironman Академик Синегорье 5.2K 2.7K
Отв.352  03 Апр. 13, 13:12, через 2 мин
m16,
В стандартной конфигурации платформ Arduino вывод AREF (вывод 21 Atmega) не задействован. В этом случае при настройке DEFAULT к выводу подключается внутреннее напряжение AVCC.

Внешнее напряжение рекомендуется подключать к выводу AREF через резистор 5 кОм.

Таким образом уменьшается риск повреждения микросхемы Atmega если настройки analogReference не совпадают с возможностями платформы. Однако при этом произойдет небольшая просадка напряжения, вследствие того, что имеется встроенный резистор 32 кОм, подключенный к выводу AREF. В этом случае оба резистора работают как делитель напряжения. Подсоединение внешнего резистора позволяет быстро переключаться на напряжение 3.3 В вывода AREF с напряжения 5 В DEFAULT без конфигурации аппаратной части и АЦП.

Потом проверю подключен AREF к 21 ноге контроллера или нет и попробую в скетч добавить analogReference(DEFAULT) чтобы явно указать опорное от Vcc.
Sambedded Кандидат наук Vancouver 376 87
Отв.353  03 Апр. 13, 13:18, через 7 мин
m16,
попробую в скетч добавить analogReference(DEFAULT) чтобы явно указать опорное от Vcc.
ironman, 03 Апр. 13, 13:12

Для порядка лучще добавить, но я проверял - по умолчанию выставляется analogReference(DEFAULT).
Начни лучше с измерния напряжения на выходе 612-й. Тогда сразу станет понятно где надо дальше ковырять - в ардуине или в ACS712.
Alex2x Кандидат наук 325 64
Отв.354  03 Апр. 13, 16:43
Потом проверю подключен AREF к 21 ноге контроллера или нетSambedded, 03 Апр. 13, 13:18

Сейчас посмотрел на ардуино уно-подключён(звонится)
pelecis Специалист Latvia-Germany 120 37
Отв.355  03 Апр. 13, 18:38
Arduino Uno может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.
ironman Академик Синегорье 5.2K 2.7K
Отв.356  04 Апр. 13, 15:46
Для порядка лучще добавить, но я проверял - по умолчанию выставляется analogReference(DEFAULT).
Начни лучше с измерния напряжения на выходе 612-й. Тогда сразу станет понятно где надо дальше ковырять - в ардуине или в ACS712.Sambedded, 03 Апр. 13, 13:18

1. Проверил с analogReference(DEFAULT) - результат без изменений.
2. 21 нога нормально подключена к AREF.
3. Подключил этот раз ардуину к нетбуку и проверил в другой комнате. Напряжение питания - 4.7v, напряжение на выходе ACS712 - 1.9v, АЦП ардуины выдает 404+-1 (403,404,405), если замкнуть входы ACS712, то АЦП выдает 402+-1
Sambedded Кандидат наук Vancouver 376 87
Отв.357  04 Апр. 13, 20:09
Напряжение питания - 4.7v, напряжение на выходе ACS712 - 1.9v, АЦП ардуины выдает 404+-1 (403,404,405), если замкнуть входы ACS712, то АЦП выдает 402+-1
ironman, 04 Апр. 13, 15:46

Ардуина измеряет все правильно 4.7/1024*404 = 1.93В. Что-то не так с ACS712. При питании 4.7В у нее должно быть 2.35 на выходе.
Попробуй померять напряжение прямо на ножках 712-й (питание и выход). Может где-то по дороге из-за плохого контакта напряжение падает?
Sambedded Кандидат наук Vancouver 376 87
Отв.358  04 Апр. 13, 20:24, через 15 мин
Да уж, светлая у тебя голова m16.
Обьяснил всё красиво и понятно.
Только пока вопрос остаётся не решённым.
Может быть, пример какой выставил бы для "ардуино"
Alex2x, 31 Марта 13, 20:46

Попрубуй вот так:

#include <LiquidCrystal.h>

#define MEDIAN   512
#define MEAS_INT 1000  // 1sec
#define ACS_ADC  A0
#define K_ACS    0.1   //это для 20А

//LiquidCrystal lcd(8, 11, 9,4,5,6,7);
LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28);

void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("I=");
  analogReference(DEFAULT);
  analogRead(ACS_ADC);
}
 
  
void loop()
{
  uint32_t sum2=0;
  uint16_t n=0;
  uint32_t StartTime, StopTime;
  int16_t adc;
  uint32_t avrg=0xFFFF;
  float I;
  
  StartTime=millis()+1;
  StopTime=StartTime+MEAS_INT;
  while(StartTime>millis());
  while(StopTime>millis())
  {
    adc=(MEDIAN-analogRead(ACS_ADC));
    sum2+=(uint32_t)adc*adc;
    n++;
  }
  if (n>0)
  {
    avrg=sqrt(sum2/n);
  }

  I=(float)avrg*5/(K_ACS*1024);
  lcd.setCursor(2, 0);
  lcd.print(I);
  lcd.print("A ");
}

Без детектирования 0 и без прерываний получается не совсем кошерно, но должно работать.
ironman Академик Синегорье 5.2K 2.7K
Отв.359  04 Апр. 13, 21:30
Попробуй померять напряжение прямо на ножках 712-й (питание и выход). Может где-то по дороге из-за плохого контакта напряжение падает?Sambedded, 04 Апр. 13, 20:09
Замерил непосредственно на ножках 712-й, тоже-самое, напряжение питания - 4.7v, напряжение на выходе - 1.9v
Похоже чип битый (((
Придется заказывать новых парочку и ждать больше месяца (((