датчик Холла ( ДХ ) - один вывод на GND , второй через резистор на +5 V .....
с общей точки второго вывода ДХ и резистора - на пинАрдуины ( можно применить подтяжку пина - тогда резистор не нужен )
как программа называется в которой виртуально можно собирать схемы на ардуино?
рисовать схему или виртуально отлаживать ?
первое - fritzing.2012.08.14 - самое простое , является "товарищем" ИДЕ Ардуино
второе - много чего есть.....
внутренней подтяжки мне кажется не хватит. нужен резистор. но я не проверял
нарисуй уже схему. что за картинка? у тебя два датчика холла?
нужно считать - хватит внутреннего резистора или нет.... я тоже не проверял..... должно хватить !
зачем два ДХ ?
проще увеличить колво магнитиков на ободе колеса для точности показаний скорости.... ( и сделать балансировку колеса ) :)
jeka_tm, кстати для пи есть готовые макросы в ардуине.h 43 строчку можно так записать: okruznost = TWO_PI*radius; Я б ещё в 27й написал time+=ntime; микрос то наверное дОльше дёргать, чем сложить два лонга. Тем более в прерывании он не инкреминируется.
Вообще то смотрел из любопытства что ж тут может глючить, но ничего не усмотрел. Видимо что-то по аппаратной части.
вот и я пока не пойму что не так. изза этого последний код отправляет измереные значения между импульсами. с железом есть непонятки. возможно датчик холла биполярный, или наводки (все на проводах пока висит). по значениям в терминале будет понятнее
насчет готовые есть знал, но не знал как пишутся
насчет сложения не уверен. возникает ошибка. но она всегда одинакова и ей можно пренебречь, или она накапливающаяся. пока не понял. хотя если учесть что не инкрементируется смысл в этом есть
Датчик вообще перестал работать, решил его разобрать, разобрал а там такая вот шляпа( на днях куплю или вытащу откуда нибудь нормальный датчик поставлю если чето будет не так, то скину с терминала инфу((
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
короче делай сам
как же он работал тогда на штатном? я просто первый раз что либо делаю подобное поэтому не знал что эта шляпа может там стоять(
маркировок не видно.... на многоножках смотри надписи и в гугл... найдёшь....
или то что на 22:00 часаот центра , или на 19:00 , или на 02:00 запитай его , провод ДХ на пин , скетч чтения этого пина в Сериал , води магнитиком пока в Сериале не будет изменений
начало работы над скетчем ( Женя , спасибо ) , болею , будет медленно :(
// за время tStrobMeasurement считаем колво оборотов колеса
// V = ( nTurnWwheel + 0.5 ) * lengthWwheel / tStrobMeasurement , mm/mS
// + 0.5 - после n импульсов колесо может прокрутиться ещё на неучтённые 1.....99% длины окружности
// поэтому добавляем среднее - + 0.5
#define pinSegA 4
#define pinSegB 5
#define pinSegC 6
#define pinSegD 7
#define pinSegE 8
#define pinSegF 9
#define pinSegG 10
#define pinSegH 11
#define pinDig1 12
#define pinDig2 13
#define pinDH 2 // пин датчика Холла
#define lengthWwheel 1525 // длина окружности колеса по резине , mm
// измерять рулеткой под нагрузкой ( с вылысыпыдыстом в кресле )
#define tStrobMeasurement 250 // длительность строба измерения , mS - влияет на мерцание индикаторов
#define tStrobPause 50 // длительность паузы между измерениями , mS - влияет на мерцание индикаторов
volatile int nTurnWwheel = 0; // колво оборотов колеса за время строба tStrobMeasurement , а может long ( надо прикинуть )
volatile byte nSignTurnWwheel = 0; // флаг для разрешения подсчёта оборотов колеса nTurnWwheel , 0 - не считаем , 1 - считаем
//==================================================================
void setup()
{
pinMode( pinSegA, OUTPUT );
pinMode( pinSegB, OUTPUT );
pinMode( pinSegC, OUTPUT );
pinMode( pinSegD, OUTPUT );
pinMode( pinSegE, OUTPUT );
pinMode( pinSegF, OUTPUT );
pinMode( pinSegG, OUTPUT );
pinMode( pinSegH, OUTPUT );
pinMode( pinDig1, OUTPUT );
pinMode( pinDig2, OUTPUT );
pinMode( pinDH, INPUT );
digitalWrite( pinDH, HIGH );
attachInterrupt( 0, StartMeasurement, FALLING ); // прерывание по спадающему фронту на pinDH
Serial.begin( 9600 );
}
//==================================================================
// обработчик прерывания "0"
//==================================================================
void StartMeasurement()
{
if( ! nSignTurnWwheel )
{
nSignTurnWwheel = 1;
nTurnWwheel++;
}
}
//==================================================================
// основная
//==================================================================
void loop()
{
if( nSignTurnWwheel )
{
}
}
//==================================================================
//
//==================================================================
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);
}
//==================================================================
// за время tStrobMeasurement считаем колво оборотов колеса
// V = ( nTurnWwheel + 0.5 ) * lengthWwheel / tStrobMeasurement , mm/mS
// + 0.5 - после n импульсов колесо может прокрутиться ещё на неучтённые 1.....99% длины окружности
// поэтому добавляем среднее - + 0.5
#define pinSegA 4
#define pinSegB 5
#define pinSegC 6
#define pinSegD 7
#define pinSegE 8
#define pinSegF 9
#define pinSegG 10
#define pinSegH 11
#define pinDig1 12
#define pinDig2 13
#define pinDH 2 // пин датчика Холла
#define lengthWwheel 1525 // длина окружности колеса по резине , mm
// измерять рулеткой под нагрузкой ( с вылысыпыдыстом в кресле )
#define tStrobMeasurement 250 // длительность строба измерения , mS - влияет на мерцание индикаторов
// #define tStrobPause 50 // длительность паузы между измерениями , mS - влияет на мерцание индикаторов
volatile int nTurnWwheel = 0; // колво оборотов колеса за время строба tStrobMeasurement , а может long ( надо прикинуть )
volatile byte nSignTurnWwheel = 0; // флаг для разрешения подсчёта оборотов колеса nTurnWwheel , 0 - не считаем , 1 - считаем
byte flagDispatcher = 0; // флаг - диспетчер
unsigned long oldMillis; // миллисометр
float speed = 0; // а может и long
//==================================================================
void setup()
{
pinMode( pinSegA, OUTPUT );
pinMode( pinSegB, OUTPUT );
pinMode( pinSegC, OUTPUT );
pinMode( pinSegD, OUTPUT );
pinMode( pinSegE, OUTPUT );
pinMode( pinSegF, OUTPUT );
pinMode( pinSegG, OUTPUT );
pinMode( pinSegH, OUTPUT );
pinMode( pinDig1, OUTPUT );
pinMode( pinDig2, OUTPUT );
pinMode( pinDH, INPUT );
digitalWrite( pinDH, HIGH );
attachInterrupt( 0, StartMeasurement, FALLING ); // прерывание по спадающему фронту на pinDH
Serial.begin( 9600 );
}
//==================================================================
// обработчик прерывания "0"
//==================================================================
void StartMeasurement()
{
if( ! nSignTurnWwheel )
{
nSignTurnWwheel = 1;
}
else
{
nTurnWwheel++;
}
}
//==================================================================
// основная
//==================================================================
void loop()
{
if( nSignTurnWwheel && ! flagDispatcher )
{
oldMillis = millis();
flagDispatcher = 1;
nTurnWwheel = 0;
}
if( nSignTurnWwheel && flagDispatcher && ( ( millis() - oldMillis > tStrobMeasurement ) ) )
{
speed = ( nTurnWwheel + 0.5 ) * lengthWwheel / tStrobMeasurement; // mm/mS
// выводим скорость на индикатор
nSignTurnWwheel = 0;
flagDispatcher = 0;
}
}
//==================================================================
//
//==================================================================
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);
}
//==================================================================
испытывать мона и без велика....
кулер ( рабочий ! ) запитать от VCC , выход ДХ кулера - на пинДХ , крыльчатку кулера подтормаживать-отпускать пальцем и смотреть на индикатор...
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
короче делай сам
как же он работал тогда на штатном? я просто первый раз что либо делаю подобное поэтому не знал что эта шляпа может там стоять(
датчик Холла ( ДХ ) - один вывод на GND , второй через резистор на +5 V .....
с общей точки второго вывода ДХ и резистора - на пинАрдуины ( можно применить подтяжку пина - тогда резистор не нужен )
как программа называется в которой виртуально можно собирать схемы на ардуино?
ты - про одно , Женя про другое :(
рисовать схему или виртуально отлаживать ?
первое - fritzing.2012.08.14 - самое простое , является "товарищем" ИДЕ Ардуино
второе - много чего есть.....
да нарисуй на листе и сфотай :) !!!!
как программа называется в которой виртуально можно собирать схемы на ардуино?
Протеус
виртуальная трата реального времени отладки.... ( моё мнение )
внутренней подтяжки мне кажется не хватит. нужен резистор. но я не проверял
нарисуй уже схему. что за картинка? у тебя два датчика холла?
внутренней подтяжки мне кажется не хватит. нужен резистор. но я не проверял
нарисуй уже схему. что за картинка? у тебя два датчика холла?
нужно считать - хватит внутреннего резистора или нет.... я тоже не проверял..... должно хватить !
зачем два ДХ ?
проще увеличить колво магнитиков на ободе колеса для точности показаний скорости.... ( и сделать балансировку колеса ) :)
подключение ДХ - сотрите и забудьте !!!!!!!!!!!!!!!!!!!!
насколько я понял моя ошибка в том что я подключил неправильно датчик хола
.....пока - первая !!!!
...пока
...а дальше ?
так??
не знаю..... скорее - НЕТ !
тип ДХ ? описание ? фото ?
не знаю.....
тип ДХ ? описание ? фото ?
он стандартного спидометра который был куплен в магазе
подключение - #100
полярность - под вашу ответственность ( не знаете - спросите ) !!!!!!!!!!!!!!!!!!!!!!!
полярность - под вашу ответственность ( не знаете - спросите ) !!!!!!!!!!!!!!!!!!!!!!!
не проще сразу взять и написать? чем сидеть тут и играть в догадки, жека давно понял что я не сильно шарю и сразу пишет за ранее
почему два датчика? разгоовра изначально не было
резистор на +5В и выход датчика. выход датчика соответственно к 2 пину
почему два датчика? разгоовра изначально не было
резистор на +5В и выход датчика. выход датчика соответственно к 2 пину
Да я видимо не правильно прочитал изначально) прочитал прирывание на 2 и 3 пин, а не 2 или 3)
спасибо сегодня попробую)
оба. но тут используется только 2
подключать так
оба. но тут используется только 2
подключать так
а тут тоже к 5-ти вольтам подрубать? может там GND?
на данной схеме gnd на втором пине датчика. но у данного датчика. так как неизвестен твой датчик, неизвестно где какие пины на твоем датчике
+5 что ты выделил все правильно
на данной схеме gnd на втором пине датчика. но у данного датчика. так как неизвестен твой датчик, неизвестно где какие пины на твоем датчике
+5 что ты выделил все правильно
Хорошо) сегодня попоробую))
http://www.youtube.com/watch?v=-64mqhUHkdA
в общем все равно сбрасываение идет какойто, видео начинается с момента когда колесо раскучено.
не ту такого что 18,17,16,15,14 и тд
а как то прыгает значение непонятно
разгони колесо. открой терминал и там будет очень много значений. сюда и их скопируй. только под спойлер (чтобы свернуто было)
буду искать проблему
jeka_tm, кстати для пи есть готовые макросы в ардуине.h 43 строчку можно так записать: okruznost = TWO_PI*radius; Я б ещё в 27й написал time+=ntime; микрос то наверное дОльше дёргать, чем сложить два лонга. Тем более в прерывании он не инкреминируется.
Вообще то смотрел из любопытства что ж тут может глючить, но ничего не усмотрел. Видимо что-то по аппаратной части.
вот и я пока не пойму что не так. изза этого последний код отправляет измереные значения между импульсами. с железом есть непонятки. возможно датчик холла биполярный, или наводки (все на проводах пока висит). по значениям в терминале будет понятнее
насчет готовые есть знал, но не знал как пишутся
насчет сложения не уверен. возникает ошибка. но она всегда одинакова и ей можно пренебречь, или она накапливающаяся. пока не понял. хотя если учесть что не инкрементируется смысл в этом есть
Датчик вообще перестал работать, решил его разобрать, разобрал а там такая вот шляпа( на днях куплю или вытащу откуда нибудь нормальный датчик поставлю если чето будет не так, то скину с терминала инфу((
Жень подскажи какие детали нужны для того чтобы сделать вольтметр на ардуино, измерение будет с 36...43вольт
Жень подскажи какие детали нужны для того чтобы сделать вольтметр на ардуино, измерение будет с 36...43вольт
-Ардуино
-дисплей
-два резистора для делителя напряжения например 10КОМ и 100КОМ можно будет мерять от 0 до 55Вольт
это без дисплея надо, на таких же сигментных модулях надо
перепутал, от 46,8 до 54,6
когда заряд будет 54,6 то на модулях 99%
когда 46,8 то 00 , но при этом когда 05 и меньше то значение должно моргать
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
короче делай сам
полярность - под вашу ответственность ( не знаете - спросите ) !!!!!!!!!!!!!!!!!!!!!!!
не проще сразу взять и написать? чем сидеть тут и играть в догадки, жека давно понял что я не сильно шарю и сразу пишет за ранее
когда время есть - пишу и рисую сразу....
б/у кулер , корпус - залить эпоксидкой ( ДХ диаметрально от проводков )
или примените такое
http://www.chipdip.ru/product/as-m15tan-r/
jeka_tm , прошу твоё добро на применение-изменение твоего кода ( влом всё заново прописывать ) :)
да пожалуйста
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
короче делай сам
как же он работал тогда на штатном? я просто первый раз что либо делаю подобное поэтому не знал что эта шляпа может там стоять(
подскажи, где тут дх ?
маркировок не видно.... на многоножках смотри надписи и в гугл... найдёшь....
или то что на 22:00 часаот центра , или на 19:00 , или на 02:00
запитай его , провод ДХ на пин , скетч чтения этого пина в Сериал , води магнитиком пока в Сериале не будет изменений
начало работы над скетчем ( Женя , спасибо ) , болею , будет медленно :(
пока так - недописано и не испытано....
испытывать мона и без велика....
кулер ( рабочий ! ) запитать от VCC , выход ДХ кулера - на пинДХ , крыльчатку кулера подтормаживать-отпускать пальцем и смотреть на индикатор...
геркон блин((( ну это уже не смешно. столько времени потеряли хз на что, потому что ты не узнал какой у тебя датчик и сразу на код начал гнать
геркон если что механический элемент, два контакта замыкаются если поднести магнит. но это механический, поэтому инерция, плохие контакты, и соответственно дребезг, залипание контактов
короче делай сам
как же он работал тогда на штатном? я просто первый раз что либо делаю подобное поэтому не знал что эта шляпа может там стоять(
под геркон - другой код , менее быстродействующий
блин чето кароче не фига не получается найти этот датчик на нем, уже все переклацал, во вторник куплю несколько штук и продолжу
блин чето кароче не фига не получается найти этот датчик на нем, уже все переклацал, во вторник куплю несколько штук и продолжу
не может быть.... дай всё , что написано на тех у кого три и больше ног....
а зачем его ( ДХ ) искать ? поводи магнитом - он сам отклитнится на проводке ДХ :)
блин чето кароче не фига не получается найти этот датчик на нем, уже все переклацал, во вторник куплю несколько штук и продолжу
не может быть.... дай всё , что написано на тех у кого три и больше ног....
а зачем его ( ДХ ) искать ? поводи магнитом - он сам отклитнится на проводке ДХ :)
второй вскрыл) мож тут где?
Надписи A3 51 \ FR \ 26 \ bs 11 \ FS 15
СМЕРШ...... СКУЛ.... - Смерть КУЛерам
там нет ДХ , два провода = питалово , кулер с ДХ - три проводка !
Надписи A3 51 \ FR \ 26 \ bs 11 \ FS 15
дааааааа , по такому - не найти.....
на моей фоте кулера - ДХ вообще без маркировки :(
[quote=SU-27-16]
СМЕРШ...... СКУЛ.... - Смерть КУЛерам
там нет ДХ , два провода = питалово , кулер с ДХ - три проводка !
щас провода понакидываю попроверяю
про это - не забыл-прочитал ДатаШит ?
http://www.chipdip.ru/product/as-m15tan-r/
есть фотоинтеррапторы.... но для велика геморрой будет - каждый километр протирать оптику....