Ви не увійшли.
Сторінки 1
В таком случае, как можно измерять напряжение более точно?
Может ли мотор брать больше, чем может пропускать L9110 и из-за этого появляться помехи ? Микросхема на L9110 сильно греется во время нагрузки.
Схема точно такая, как на рисунке. Убрал из проекта все остальное.
int encoder_pin = 2;
volatile int pulses = 0;
static volatile unsigned long debounce = 0;
void setup(){
Serial.begin(115200);
pinMode(encoder_pin, INPUT);
attachInterrupt(0, counter, RISING);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
digitalWrite(22,LOW);
digitalWrite(23,HIGH);
}
void loop(){
delay(1000);
Serial.println(pulses);
}
void counter(){
if( digitalRead (encoder_pin) && (micros()-debounce > 1000) && digitalRead (encoder_pin) ) { // если использовать задержку
debounce = micros();
pulses++;
}
}
Собрал еще раз всю схему на столе, считает прерывания правильно даже без конденсаторов (напаял и на мотор 100nF) и задержки в counter.
Мотор должен крутить вал и собирать римскую штору на окне.
А для проекта используются провода длиной 2 метра от драйвера до мотора и от ардуино до датчика. И похоже, проблема проявляется на длинных проводах... Но все равно не уверен. Попробовал с длинными проводами на столе - работает. Подключаю к шторе - появляются лишние срабатывания, причем только когда идет максимальная нагрузка, при подъеме, на спуске все нормально.
Есть такая схема :
Мега, к ней на пин 2 подключен оптический энкодер, на пин 22, 23 подключен драйвер двигателя, Мега запитана оn USB.
К драйверу подключен GEAR мотор (не шаговый).
Энкодером нужно считать обороты мотора, использую колесо на валу с одной прорезью (один оборот - одно срабатывание)
Проблема : без нагрузки на мотор, показания энкодера точные. При нагрузке появляются ложные срабатывания, причем не единичные, а десятками.
Пробовал два варианта устранения ложных срабатываний предложенных тут http://androminarobot-english.blogspot.com/2017/03/encoder-and-arduinotutorial-about-ir.html
1 - конденсатор 100nF на DO и GND энкодера
2 - добавить задержку 500 микросекунд между срабатываниями
Результат практически не меняется.
Понял, спасибо. Переделал землю, заработало (только надо вычитать полученные значения : V2 = V2-V1, V3 = V3-V2-V1)
Я не пытаюсь построить BMS, мне нужно только контролировать заряд, для информации.
Есть блок из трех аккумуляторов 18650 3.7V, соединенных последовательно. Нужно подключить Voltage Sensor на каждый аккумулятор и снимать показания с помощью Ардуино :
При такой схеме подключения, я получаю напряжение на ножках "-" : если подключить мультиметр к "-" сенсора 1 и к "-" сенсора 2 получаю напряжение батареи 1 и так далее...
Что я делаю не так ? Нужно как-то развязать диодами ?
Сторінки 1