www.open-tager.ru
http://www.open-tager.ru/forum/

Зарядно розрядное устройство на 32 канала
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=6378
Страница 1 из 4

Автор:  maksim [ 21 мар 2018, 00:25 ]
Заголовок сообщения:  Зарядно розрядное устройство на 32 канала

Розрабатываю устройство для измерения емкости 32 литиевых акалуляторов одновремено )))Будет тумблер зарядка/розрядка ,который будет переключать акум на платку зарядки или на рез 2вт/10 ом.Розряать буду до 3.6в ,как только акум достиг этого значения ,тумблером переключаю его в режим зарядка)))Чтобы контролировать напряжение ,будет собрана схемка бегущие огни которая бует переключать вольтметр по банкам акамулятора )))Вопрос как сделать этот переклчатель вольтметра на транзисторах а не на релюшках????
Изображение

Автор:  maksim [ 21 мар 2018, 00:27 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

У кого какие идеи есть ,как то автоматизировать этот процес???

Автор:  DiBor [ 21 мар 2018, 02:16 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

maksim писал(а):
У кого какие идеи есть ,как то автоматизировать этот процес???

У меня вообще есть идея сделать беспроводную зарядку по такой схеме. Не надо не разъемов не проводов. Повесил повязки на спец вешалку зарядку и расставил тагеры в пирамиде с зарядкой. https://youtu.be/cdPR_oibNGo?t=20

Автор:  Pacifist [ 21 мар 2018, 11:37 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

maksim писал(а):
Вопрос как сделать этот переклчатель вольтметра на транзисторах а не на релюшках????

смотрите на аналоговые мультиплексоры. Например https://arduino.ua/prod1307-analogovii-kommytator-16h1-na-cd74hc4067

Автор:  maksim [ 22 мар 2018, 14:23 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

Запустил на ардуинке пример подключения мюльтиплексор)))Работает все)))
https://www.youtube.com/watch?v=TTdOkhqLSr4
Изображение

Автор:  maksim [ 22 мар 2018, 14:23 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

#define EN 3
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define SIG A0


void setup(){
Serial.begin(9600);

pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);

digitalWrite(S0, LOW);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);

pinMode(EN, OUTPUT);
digitalWrite(EN, LOW);


}


void loop(){

//Loop through and read all 16 values
//Reports back Value at channel 6 is: 346
for(int i = 0; i < 16; i ++){
// Serial.print("Value at channel ");
// Serial.print(i);
// Serial.print(": ");
Serial.print(readMux(i));
Serial.print(". ");

}
Serial.println();
delay(1000);
}


int readMux(int channel){
int controlPin[] = {S0, S1, S2, S3};

int muxChannel[16][4]={
{0,0,0,0}, //channel 0
{1,0,0,0}, //channel 1
{0,1,0,0}, //channel 2
{1,1,0,0}, //channel 3
{0,0,1,0}, //channel 4
{1,0,1,0}, //channel 5
{0,1,1,0}, //channel 6
{1,1,1,0}, //channel 7
{0,0,0,1}, //channel 8
{1,0,0,1}, //channel 9
{0,1,0,1}, //channel 10
{1,1,0,1}, //channel 11
{0,0,1,1}, //channel 12
{1,0,1,1}, //channel 13
{0,1,1,1}, //channel 14
{1,1,1,1} //channel 15
};

//loop through the 4 sig
for(int i = 0; i < 4; i ++){
digitalWrite(controlPin[i], muxChannel[channel][i]);
}

//read the value at the SIG pin
int val = analogRead(SIG);

//return the value
return val;
}

Автор:  maksim [ 22 мар 2018, 14:28 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

Помогите подправить код ))
1) Как преобразовать числа в вольты??
2)Как добавить еще один мультиплексор и сделать 32 вх ??
3)Сделать сигнализацию ,чтобы как только на одном из входов напряжение упало до 3.6 в ,заорелся светодиодик ....??

Автор:  Pacifist [ 22 мар 2018, 15:01 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

1) Числа в вольты преобразуются просто:
V = Х * Vref / ADCmax
где Vref - опорное напряжение для АЦП. ADCmax - максимальное значение АЦП. На примере: допустим вы используете в качестве положительного опорного напряжения АЦП напряжение питания +5В, при этом АЦП имеет 10 разрядов, то есть максимальное его значение 1023. Тогда формула будет V = X * 5 / 1023.

2) Используйте выводы ЕN для разрешения работы конкретного мультиплексора. Но почитайте в даташите отключают ли они выходной канал когда микросхема не активна. Или заведите с каждого мультиплексора выход на отдельный канал АЦП. Получится простой опрос - задали адрес - измерили сначала от одного мультиплексора значение, потом от другого.

3) Надо не только светодиодик, но и нагрузку отключать.

Автор:  maksim [ 22 мар 2018, 15:39 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

Заменил int val = analogRead(SIG); на int val = analogRead(SIG)* 5 / 1024; Преобразовало в вольты но не показывает после запятой значения )))Что нужно подправить чтобы показало напряжение в формате 3.75.....???

Автор:  Pacifist [ 22 мар 2018, 16:50 ]
Заголовок сообщения:  Re: Зарядно розрядное устройство на 32 канала

maksim писал(а):
Заменил int val = analogRead(SIG); на int val = analogRead(SIG)* 5 / 1024; Преобразовало в вольты но не показывает после запятой значения )))Что нужно подправить чтобы показало напряжение в формате 3.75.....???

Умножить не на 5 а на 5000 - получите значение в милливольтах :) Только смотрите какого размера int в вашей ардуине.
А где ставить точку при выводе на экран - это уже сами придумайте :)

Страница 1 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/