Велоспидометр

next-999
Offline
Зарегистрирован: 30.09.2013

вот посмотрите видео что выходит

http://creative-store.ru/IMG_0611.MOV

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

тогда по правильному ставьте на каждый вывод с ардуины на сегменты по резистору 220ом, а катод инидикатора на транзистор и базу через резистор 1к на ардуину. интересно вы поймете о чем я или нет

next-999
Offline
Зарегистрирован: 30.09.2013

так катод у меня и так на транзистор идет, 1 катод на 1 транзистор второй на второй

попробовал поставить 220 на каждый индиктор и 1к с базы транзистора на землю - не помоло

мне кажется это дело в коде

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так изначальный код на видео или нет? если да почему один сегмент не горит

next-999
Offline
Зарегистрирован: 30.09.2013

Код последний - один сигмент не горит потому что он не рабочий (сгоревшая лампочка) а так питание проходит - проверял.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проверяйте свое железо, у меня все хорошо. по крайней мере все работает после перезагрузки, отсоеденения кабеля

дело не в коде))

http://youtu.be/2CNCKMGPMv8

#define sim_A    4 
#define sim_B    5 
#define sim_C    6 
#define sim_D    7 
#define sim_E    8 
#define sim_F    9 
#define sim_G    10 
#define sim_H    11
#define dig_1    12 
#define dig_2    13

volatile unsigned long time = 0;        //Время срабатывания первого датчика
volatile int skorost = 0;    
const float radius = 0.4;
const float pi_n = 3.1415;
volatile float okruznost;


void Start(){
  skorost = (okruznost)/(millis()-time);
  time=millis();
}

  
void setup(){
  pinMode(sim_A, OUTPUT);
  pinMode(sim_B, OUTPUT);
  pinMode(sim_C, OUTPUT);
  pinMode(sim_D, OUTPUT);
  pinMode(sim_E, OUTPUT);
  pinMode(sim_F, OUTPUT);
  pinMode(sim_G, OUTPUT);
  pinMode(sim_H, OUTPUT);
  pinMode(dig_1, OUTPUT);
  pinMode(dig_2, OUTPUT);
  attachInterrupt(0, Start, RISING);     //Прерывание по нарастающему фронту на D2
  okruznost = 2*pi_n*radius*1000;
  skorost = 0;
}

void loop(){
  sped(skorost);
}


void sped(int skor){
  int c2=skor/10;                        // вторая цифра скорости 
  int c1=skor%10;                        // первая цифра скорости
  vivod(c2);
  digitalWrite(dig_1, 0);
  delay(5);
  digitalWrite(dig_1, 1);
  vivod(c1);
  digitalWrite(dig_2, 0);
  delay(5);
  digitalWrite(dig_2, 1);
}

void vivod(int n){
  if((n!=1)&&(n!=4))digitalWrite(sim_A,1);                     // сегмент A
  else digitalWrite(sim_A,0);
  if((n!=5)&&(n!=6))digitalWrite(sim_B,1);                     // сегмент B
  else digitalWrite(sim_B,0);
  if(n!=2)digitalWrite(sim_C,1);                               // сегмент C
  else digitalWrite(sim_C,0);
  if((n!=1)&&(n!=4)&&(n!=7))digitalWrite(sim_D,1);             // сегмент D
  else digitalWrite(sim_D,0);
  if((n==0)||(n==2)||(n==6)||(n==8))digitalWrite(sim_E,1);     // сегмент E
  else digitalWrite(sim_E,0);
  if((n!=1)&&(n!=2)&&(n!=3)&&(n!=7))digitalWrite(sim_F,1);     // сегмент F
  else digitalWrite(sim_F,0);
  if((n!=0)&&(n!=1)&&(n!=7))digitalWrite(sim_G,1);             // сегмент G
  else digitalWrite(sim_G,0);
}

уменьшил задержку. посмострел на своем, видно моргание

next-999
Offline
Зарегистрирован: 30.09.2013

Блин че за фигня(((( опять пересобрал все и нефига не работает, ладно разберусь в чем причина отпишусь)

next-999
Offline
Зарегистрирован: 30.09.2013

все наконецто разобрался с этой шнягой) оказалось дело в чипах -где я сам бутлоудер загонял) завтра буду тестировать все)

next-999
Offline
Зарегистрирован: 30.09.2013

Вот кароче че получилось

http://www.youtube.com/watch?v=y7c_9N26TKs&feature=youtu.be

 

1)Слишком быстро меняются значения

2)Значение автоматически не уменьшаются

 

Например на моем велоспедометре который покупной, когда я разгоняюсь значения меняются так :

4, 8,15,22,25,28,32 и тд

А если например я резко останавливаюсь, то значение автоматически уменьшаются. например еду 10км ч и резко остановился, оно 8,5,3,0

а сдесь значение остается

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проводите нормальный эксперимент. не сами замыкайте, а поставьте датчик на колесо. если колесо неудобно сделайте аналог на столе на картоне диаметром например сантиметров 30. крутите его и смотрите. только колесо утяжелите чтобы инерция была и колесо крутилось дальше после толчка

а в ноль сбросить несложно

next-999
Offline
Зарегистрирован: 30.09.2013

аа окей, я просто на велик делают супер пупер копьютер - щас разберусь с остальныыми кодами все соеденю и потом уже все порверю) вы можете адрес написать мне пока что, я обещал благодарность

next-999@mail.ru

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я считаю что лучше поставить на колесо как минимум 2 магнита. колесо медленно все таки вращается

 

next-999
Offline
Зарегистрирован: 30.09.2013

не, у мя электровел - 50км/ч - там оч быстро вращается

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну вам виднее

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

отладка :

- создать программно на каком-либо пине импульсы с плавно уменьшающимся периодом повторения - и подать их на информационный пин ( подыгрыш датчика Холла ) - так проверяем показания от 00 до 99

боевая программа :

- чем больше магнитиков на обод колеса - тем больше точность измерения скорости

- для упрощения подгонки измеряемой скорости к реальной - введите поправочный коэффициент, который вместит в сибя :

     - количество магнитиков на обод колеса

     - радиус колеса

     - давление в камере колеса, на котором установлен датчик Холла

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

next-999 пишет:

не, у мя электровел - 50км/ч - там оч быстро вращается

если исходить из этого - на малой скорости Вы можете получить данные по скорости - то 5, то 0 км/ч !

ещё одна проблема - метод измерения скорости ...

1 - можно измерять количество срабатываний Д_Холла за определённое время ( S / constT )

2 - можно измерять время "пролёта" магнитика относительно  Д_Холла ( Sconst / T )

от выбора метода будет СИЛЬНО зависеть точность и КОД

ИМХО: при кол-ве магнитиков на обод >= 3...4 - лучЬшееее применять метод 2

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

и предложение для улучшения функциональности устройства - добавляем переключатель и получаем два режима :

- Спидометр - текущая скорость ( 0 ... 99 км/ч ) - ( если смогнёте :)-    )

- Одометр - пройденное расстояние от крайнего включения питания устройства ( 0 .... 99 км, далее - обнуление.... )

next-999
Offline
Зарегистрирован: 30.09.2013

Интересный варианты у вас) 

У меня стоит обычный спидометр за 400 рублей из магазина, там 1 магнитик и у меня все норм показывается)

Да было бы прикольно пройденое расстояние)

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

расстрояние не проблема посчиать

next-999
Offline
Зарегистрирован: 30.09.2013

Было бы прикольно если переключать это кнопкой) например нажал  на кнопочку показывает км/ч . нажал еще раз  - показывает сколько проехал)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

next-999 пишет:

Было бы прикольно если переключать это кнопкой) например нажал  на кнопочку показывает км/ч . нажал еще раз  - показывает сколько проехал)

кнопка + код = тот же переключатель - это не сложно

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

можно и без кнопки.... для безопасности веловождения....

например, три секунды отображается скорость, три секунды одометр, скорость - постоянное свечение, одометр - мерцание индикаторов, т.к. - нет возможности отобразить режим. можно добавить светодиод - молчит скорость, горит - одометр....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

next-999 пишет:

У меня стоит обычный спидометр за 400 рублей из магазина, там 1 магнитик и у меня все норм показывается)

потомучё в нём измеряется время T оборота колеса.... метод_2

далее вычисляется скорость - V = L / T, L - усреднённая длина окружности обода колеса

или V = 2 * Pi * R / T, R - с учётом сплющивания покрышки в месте контакта с поверхностью

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не прав моя с количеством магнитиков..... :(

если R = 40 см

то L = 2,513 м

при скорости 1 км/ч колесо должно делать оборот за Хсек = 2,513 * 3600 / 1000 = 9 сек

проехать 3 метра за 10 сек - это эквилибристика :) , т.е. - хватит и одного магнитика :)

next-999
Offline
Зарегистрирован: 30.09.2013

Отправил посылку как и обещал. 

Трек код : 12457575007708

отслеживать на сайте почты россии 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

спасибо

что у вас с железом? когда будете собирать?

next-999
Offline
Зарегистрирован: 30.09.2013

Привет, спустя почти год я добрался снова до этой штуки и решил ее собрать, в общем в коде явно есть небольшие проблемы, снял видео когда крутится колесо, значения очень не точные, может быть 5 а потом сразу 0, если резко остановить колесо на каком либо значении - это значение остается, и не становятся 00

вот видео

http://youtu.be/gGQkq2nNhlU

если не трудно можете подредактировать код?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а код то какой на данный момент?

next-999
Offline
Зарегистрирован: 30.09.2013

jeka_tm пишет:

проверяйте свое железо, у меня все хорошо. по крайней мере все работает после перезагрузки, отсоеденения кабеля

дело не в коде))

http://youtu.be/2CNCKMGPMv8

#define sim_A    4 
#define sim_B    5 
#define sim_C    6 
#define sim_D    7 
#define sim_E    8 
#define sim_F    9 
#define sim_G    10 
#define sim_H    11
#define dig_1    12 
#define dig_2    13

volatile unsigned long time = 0;        //Время срабатывания первого датчика
volatile int skorost = 0;    
const float radius = 0.4;
const float pi_n = 3.1415;
volatile float okruznost;


void Start(){
  skorost = (okruznost)/(millis()-time);
  time=millis();
}

  
void setup(){
  pinMode(sim_A, OUTPUT);
  pinMode(sim_B, OUTPUT);
  pinMode(sim_C, OUTPUT);
  pinMode(sim_D, OUTPUT);
  pinMode(sim_E, OUTPUT);
  pinMode(sim_F, OUTPUT);
  pinMode(sim_G, OUTPUT);
  pinMode(sim_H, OUTPUT);
  pinMode(dig_1, OUTPUT);
  pinMode(dig_2, OUTPUT);
  attachInterrupt(0, Start, RISING);     //Прерывание по нарастающему фронту на D2
  okruznost = 2*pi_n*radius*1000;
  skorost = 0;
}

void loop(){
  sped(skorost);
}


void sped(int skor){
  int c2=skor/10;                        // вторая цифра скорости 
  int c1=skor%10;                        // первая цифра скорости
  vivod(c2);
  digitalWrite(dig_1, 0);
  delay(5);
  digitalWrite(dig_1, 1);
  vivod(c1);
  digitalWrite(dig_2, 0);
  delay(5);
  digitalWrite(dig_2, 1);
}

void vivod(int n){
  if((n!=1)&&(n!=4))digitalWrite(sim_A,1);                     // сегмент A
  else digitalWrite(sim_A,0);
  if((n!=5)&&(n!=6))digitalWrite(sim_B,1);                     // сегмент B
  else digitalWrite(sim_B,0);
  if(n!=2)digitalWrite(sim_C,1);                               // сегмент C
  else digitalWrite(sim_C,0);
  if((n!=1)&&(n!=4)&&(n!=7))digitalWrite(sim_D,1);             // сегмент D
  else digitalWrite(sim_D,0);
  if((n==0)||(n==2)||(n==6)||(n==8))digitalWrite(sim_E,1);     // сегмент E
  else digitalWrite(sim_E,0);
  if((n!=1)&&(n!=2)&&(n!=3)&&(n!=7))digitalWrite(sim_F,1);     // сегмент F
  else digitalWrite(sim_F,0);
  if((n!=0)&&(n!=1)&&(n!=7))digitalWrite(sim_G,1);             // сегмент G
  else digitalWrite(sim_G,0);
}

уменьшил задержку. посмострел на своем, видно моргание

 

вот этот

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

сколько магнитов будет на колесе? поставь наверно штуки четыре

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
#define sim_A    4 
#define sim_B    5 
#define sim_C    6 
#define sim_D    7 
#define sim_E    8 
#define sim_F    9 
#define sim_G    10 
#define sim_H    11
#define dig_1    12 
#define dig_2    13

volatile unsigned long time = 0;       //Время срабатывания первого датчика
volatile unsigned long skorost = 0;   
volatile unsigned long okruznost;
const    unsigned long max_delay=2000; // максимальное время между срабатываниями датчков, 
                                       //после которого считаем что колесо не крутится

const int radius = 400;                // радиус в мм
const int N = 4;                       // колиство магнитов
const float pi_n = 3.1415;



void Start(){
  skorost = (okruznost)/(millis()-time);
  time=millis();
}

  
void setup(){
  pinMode(sim_A, OUTPUT);
  pinMode(sim_B, OUTPUT);
  pinMode(sim_C, OUTPUT);
  pinMode(sim_D, OUTPUT);
  pinMode(sim_E, OUTPUT);
  pinMode(sim_F, OUTPUT);
  pinMode(sim_G, OUTPUT);
  pinMode(sim_H, OUTPUT);
  pinMode(dig_1, OUTPUT);
  pinMode(dig_2, OUTPUT);
  attachInterrupt(0, Start, RISING);     //Прерывание по нарастающему фронту на D2
  okruznost = 2*pi_n*radius*N;
  skorost = 0;
}

void loop(){
  if((millis()-time)>max_delay) skorost=0;
  sped(skorost);
}


void sped(int skor){
  int c2=skor/10;                        // вторая цифра скорости 
  int c1=skor%10;                        // первая цифра скорости
  vivod(c2);
  digitalWrite(dig_1, 0);
  delay(5);
  digitalWrite(dig_1, 1);
  vivod(c1);
  digitalWrite(dig_2, 0);
  delay(5);
  digitalWrite(dig_2, 1);
}

void vivod(int n){
  if((n!=1)&&(n!=4))digitalWrite(sim_A,1);                     // сегмент A
  else digitalWrite(sim_A,0);
  if((n!=5)&&(n!=6))digitalWrite(sim_B,1);                     // сегмент B
  else digitalWrite(sim_B,0);
  if(n!=2)digitalWrite(sim_C,1);                               // сегмент C
  else digitalWrite(sim_C,0);
  if((n!=1)&&(n!=4)&&(n!=7))digitalWrite(sim_D,1);             // сегмент D
  else digitalWrite(sim_D,0);
  if((n==0)||(n==2)||(n==6)||(n==8))digitalWrite(sim_E,1);     // сегмент E
  else digitalWrite(sim_E,0);
  if((n!=1)&&(n!=2)&&(n!=3)&&(n!=7))digitalWrite(sim_F,1);     // сегмент F
  else digitalWrite(sim_F,0);
  if((n!=0)&&(n!=1)&&(n!=7))digitalWrite(sim_G,1);             // сегмент G
  else digitalWrite(sim_G,0);
}

пробуй. пока без усреднения

next-999
Offline
Зарегистрирован: 30.09.2013

jeka_tm пишет:

сколько магнитов будет на колесе? поставь наверно штуки четыре

 

у меня стоит один магнитик, от штатного спидометра, и такой же датчик хола

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо пусть один. тогда уберу множитель. тебе нужно подобрать max_delay после которого скорость будет считать нулевой

#define sim_A    4 
#define sim_B    5 
#define sim_C    6 
#define sim_D    7 
#define sim_E    8 
#define sim_F    9 
#define sim_G    10 
#define sim_H    11
#define dig_1    12 
#define dig_2    13

volatile unsigned long time = 0;       //Время срабатывания первого датчика
volatile unsigned long skorost = 0;   
volatile unsigned long okruznost;
const    unsigned long max_delay=2000; // максимальное время между срабатываниями датчков, 
                                       //после которого считаем что колесо не крутится

const int radius = 400;                // радиус в мм
const float pi_n = 3.1415;



void Start(){
  skorost = (okruznost)/(millis()-time);
  time=millis();
}

  
void setup(){
  pinMode(sim_A, OUTPUT);
  pinMode(sim_B, OUTPUT);
  pinMode(sim_C, OUTPUT);
  pinMode(sim_D, OUTPUT);
  pinMode(sim_E, OUTPUT);
  pinMode(sim_F, OUTPUT);
  pinMode(sim_G, OUTPUT);
  pinMode(sim_H, OUTPUT);
  pinMode(dig_1, OUTPUT);
  pinMode(dig_2, OUTPUT);
  attachInterrupt(0, Start, RISING);     //Прерывание по нарастающему фронту на D2
  okruznost = 2*pi_n*radius;
  skorost = 0;
}

void loop(){
  if((millis()-time)>max_delay){
    skorost=0;
    time=millis();
  }
  sped(skorost);
}


void sped(int skor){
  int c2=skor/10;                        // вторая цифра скорости 
  int c1=skor%10;                        // первая цифра скорости
  vivod(c2);
  digitalWrite(dig_1, 0);
  delay(5);
  digitalWrite(dig_1, 1);
  vivod(c1);
  digitalWrite(dig_2, 0);
  delay(5);
  digitalWrite(dig_2, 1);
}

void vivod(int n){
  if((n!=1)&&(n!=4))digitalWrite(sim_A,1);                     // сегмент A
  else digitalWrite(sim_A,0);
  if((n!=5)&&(n!=6))digitalWrite(sim_B,1);                     // сегмент B
  else digitalWrite(sim_B,0);
  if(n!=2)digitalWrite(sim_C,1);                               // сегмент C
  else digitalWrite(sim_C,0);
  if((n!=1)&&(n!=4)&&(n!=7))digitalWrite(sim_D,1);             // сегмент D
  else digitalWrite(sim_D,0);
  if((n==0)||(n==2)||(n==6)||(n==8))digitalWrite(sim_E,1);     // сегмент E
  else digitalWrite(sim_E,0);
  if((n!=1)&&(n!=2)&&(n!=3)&&(n!=7))digitalWrite(sim_F,1);     // сегмент F
  else digitalWrite(sim_F,0);
  if((n!=0)&&(n!=1)&&(n!=7))digitalWrite(sim_G,1);             // сегмент G
  else digitalWrite(sim_G,0);
}

 

next-999
Offline
Зарегистрирован: 30.09.2013

jeka_tm пишет:

хорошо пусть один. тогда уберу множитель. тебе нужно подобрать max_delay после которого скорость будет считать нулевой

#define sim_A    4 
#define sim_B    5 
#define sim_C    6 
#define sim_D    7 
#define sim_E    8 
#define sim_F    9 
#define sim_G    10 
#define sim_H    11
#define dig_1    12 
#define dig_2    13

volatile unsigned long time = 0;       //Время срабатывания первого датчика
volatile unsigned long skorost = 0;   
volatile unsigned long okruznost;
const    unsigned long max_delay=2000; // максимальное время между срабатываниями датчков, 
                                       //после которого считаем что колесо не крутится

const int radius = 400;                // радиус в мм
const float pi_n = 3.1415;



void Start(){
  skorost = (okruznost)/(millis()-time);
  time=millis();
}

  
void setup(){
  pinMode(sim_A, OUTPUT);
  pinMode(sim_B, OUTPUT);
  pinMode(sim_C, OUTPUT);
  pinMode(sim_D, OUTPUT);
  pinMode(sim_E, OUTPUT);
  pinMode(sim_F, OUTPUT);
  pinMode(sim_G, OUTPUT);
  pinMode(sim_H, OUTPUT);
  pinMode(dig_1, OUTPUT);
  pinMode(dig_2, OUTPUT);
  attachInterrupt(0, Start, RISING);     //Прерывание по нарастающему фронту на D2
  okruznost = 2*pi_n*radius;
  skorost = 0;
}

void loop(){
  if((millis()-time)>max_delay){
    skorost=0;
    time=millis();
  }
  sped(skorost);
}


void sped(int skor){
  int c2=skor/10;                        // вторая цифра скорости 
  int c1=skor%10;                        // первая цифра скорости
  vivod(c2);
  digitalWrite(dig_1, 0);
  delay(5);
  digitalWrite(dig_1, 1);
  vivod(c1);
  digitalWrite(dig_2, 0);
  delay(5);
  digitalWrite(dig_2, 1);
}

void vivod(int n){
  if((n!=1)&&(n!=4))digitalWrite(sim_A,1);                     // сегмент A
  else digitalWrite(sim_A,0);
  if((n!=5)&&(n!=6))digitalWrite(sim_B,1);                     // сегмент B
  else digitalWrite(sim_B,0);
  if(n!=2)digitalWrite(sim_C,1);                               // сегмент C
  else digitalWrite(sim_C,0);
  if((n!=1)&&(n!=4)&&(n!=7))digitalWrite(sim_D,1);             // сегмент D
  else digitalWrite(sim_D,0);
  if((n==0)||(n==2)||(n==6)||(n==8))digitalWrite(sim_E,1);     // сегмент E
  else digitalWrite(sim_E,0);
  if((n!=1)&&(n!=2)&&(n!=3)&&(n!=7))digitalWrite(sim_F,1);     // сегмент F
  else digitalWrite(sim_F,0);
  if((n!=0)&&(n!=1)&&(n!=7))digitalWrite(sim_G,1);             // сегмент G
  else digitalWrite(sim_G,0);
}

 

 

спасибо, попробую сегодня.

скажи, а реально сделать на это же ардуино код датчик температуры, и чтобы переключать кнопкой

например нажал на кнопку - загорелась скорость, еще раз нажал - загорелась температура

либо чтобы оно само автоматически переключалось каждый 20 секунд например

еще нужен код чтобы считать заряд батареи 42 заряжена на максимум, 38 села, чтобы это было в % сотношении от 100 до 00

поможешь сделать данные коды? я тебе еще отправлю че нить, у меня много че интересного появилось)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да сделать можно. определись точно что хочешь сначала. хоть датчик тока повесить

но если так много, то наверно oled дисплей можно повесить или 4 кнопки для выбора текущего режима или одна перебором

 

next-999
Offline
Зарегистрирован: 30.09.2013

я принципиально не могу использовать дисплей, у меня очень замороченая идея) с оптоволокном и светодиодами) поэтому только так придется) хорошо, сегодня испытаю код и отпишусь)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо. тогда определись что выводить будешь и как управлять или без управления

next-999
Offline
Зарегистрирован: 30.09.2013

http://www.youtube.com/watch?v=FBbxA6qEt6M

в общем какойто трабл в коде, он сначала вроде бы как правильное значение показывает, а потом появляются цифры парозиты 09,08,02, а потом опять правилное, посмотри видео примерно с середины, сначало все тупит потомучто разгоняю мотором, изза волн глючит сначала)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ты понимаешь что колесо у тебя не будет крутится так быстро? я сужу по звуку на видео

и это очень похоже на наводки. датчик как подключал?

next-999
Offline
Зарегистрирован: 30.09.2013

jeka_tm пишет:

ты понимаешь что колесо у тебя не будет крутится так быстро? я сужу по звуку на видео

и это очень похоже на наводки. датчик как подключал?

у меня велик электро он фигачит 50км\ч) а то как оно крутилось там было максимум 30 + заметь когда сокрость постепенно падает как меняются значения сначало показывает например 21 потом 03 09 00  потом 20 опять 03 09 потом 19 тоесть откудато появляются эти значения 03 09 постоянно

датчик подключил на размыкание 2 и 3 пина, но фишка в том что когда я через тестер проверяю срабатывание датчика холла, тестер пищит только тогда когда он крутится прям медленно (примерно 1 оборот в секунду), если быстрее то он уже не пищит а просто появляетяс какой-то сопротивление, может ли быть  проблема в этом??

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

схему нарисуй и как подключал. какие провода

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пожтяжку резистором делал?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

датчик подключил на размыкание 2 и 3 пина
как это ? датчик подключается к одному пину....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

2-3 пин датчика вроде он имел в виду

next-999
Offline
Зарегистрирован: 30.09.2013

 

да резисторы стоят, если бы их небыло значения скакайло бы как бешеное.

1 контакт датчика хола на 2 пин второй контат на 3 пин

или я что-то не так сделал?

next-999
Offline
Зарегистрирован: 30.09.2013

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

next-999 пишет:

1 контакт датчика хола на 2 пин второй контат на 3 пин

или я что-то не так сделал?

да , не так.....

next-999
Offline
Зарегистрирован: 30.09.2013

SU-27-16 пишет:

next-999 пишет:

1 контакт датчика хола на 2 пин второй контат на 3 пин

или я что-то не так сделал?

да , не так.....

 

а второй контакт куда вешать? на +5?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

нууууууу, Женя же писал - выложи всю схему !
чё виртуально-то обсуждать схему ?

тип датчика Холла ? схема ? фото ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

датчик Холла ( ДХ ) - один вывод на GND , второй через резистор на +5 V .....
с общей точки второго вывода ДХ и резистора - на пинАрдуины ( можно применить подтяжку пина - тогда резистор не нужен )