Прошу помощи - определить состояние выключателя

Alex_pcb
Offline
Зарегистрирован: 11.12.2017

Не надо делать по другому, нужен самой простой генератор частоты с одной стороны и простой частотомер на другой стороне. растояние от передатчика и приемника ( и там и там atmega328 ) может вариироваться от 20 см до 2 метров (200см), и ваш делитель будет подовать меньшое напряжение как только будет отдоляться все дальше и дальше. Код программы есть ниже написанный dimax 

все что хотелось бы чуть чуть поправить а именно:

- 11 пин на ардуино стоит spi там micro SD работает, и плата уже разведенна, надо как-то поменять на другой пин, например 9 или 8 или 7 пин

- частота нужна строго 13 Hz , а не 20000hz 

 

 
 

void setup(){
pinMode (8,INPUT); // вход сигнала (only для atmega328)
pinMode(11,OUTPUT); // выход генератора 20кГц(only для atmega328)
pinMode(13,OUTPUT); // светодиод
//---настройка 16 бит таймера-счётчика1---------- 
TCCR1A = 0; TCNT1 = 0;
TIMSK1 = (1<<ICIE1)|(1<<OCIE1A);//создавать прерывание от сигнала на пине ICP1
TCCR1B = (1<<ICNC1)|(1<<ICES1)|(1<<WGM12)|(1<<CS10);//div1, mode4 CTC
OCR1A=1500; //через 1500 тактов падать в прерывание 
//----- настройка генератора 20кГц---------
TCCR2A=(1<<COM2A0)|(1<<WGM21); //mode 2 CTC
TCCR2B=1<<CS21; OCR2A=49;
}

ISR (TIMER1_CAPT_vect) { //прерывание захвата сигнала на входе ICP1
TCNT1 = 0; //сбрасывать счётчик от внешних тактов
PORTB&=~(1<<5); //погасить светодиод
}// ICP должен сбрасывать счётчик примерно через 780 тактов


ISR (TIMER1_COMPA_vect) { 
//Если было больше 1500тактов  и попали сюда -зажечь светолиод
PORTB|=1<<5; //зажечь светодиод
} 
void loop(){}

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Alex_pcb, просто не переделать. Алгоритм разработан под высокую частоту. Можно только вывод генерации перекинуть с 11й на 3ю ногу.

Alex_pcb
Offline
Зарегистрирован: 11.12.2017

dimax, а какая самая минимальная частота с которой может работать алгаритм ?
и почему имеено 3 нога ? ,режим шим PWM есть так же и на ногах 6 и 9 

Alex_pcb
Offline
Зарегистрирован: 11.12.2017

а я понял,там же таймер в коде, OCS2A  и есть свободный OCS2B
Dimax,  а вы работете как фрилансер? , можете сделать код, за денежное вознаграждение ?
как с вами связаться ? или можете мне написать на мою почту : alexpcb@bk.ru.

svm
Offline
Зарегистрирован: 06.11.2016

Alex_pcb пишет:

Не надо делать по другому, нужен самой простой генератор частоты с одной стороны и простой частотомер на другой стороне. растояние от передатчика и приемника ( и там и там atmega328 ) может вариироваться от 20 см до 2 метров (200см), и ваш делитель будет подовать меньшое напряжение как только будет отдоляться все дальше и дальше. Код программы есть ниже написанный dimax 

Зря Вы так делитель обижаете. Вход ардуины достаточно высокоомный и напряжение от расстояния при исправной проводке зависеть практически не будет.  Возможно придется поставить кондючки на входе, для борьбы с помехами. А тащить высокую частоту до переключателя и обратно в автомобильном жгуте не есть хорошая идея. 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Alex_pcb, сама идеология метода, который я предлагал для данного топика подразумевает только высокую частоту. Почитайте #16, #18. Низкую частоту не подмешать в существующую цепь и не отловить потом. Если у вас что-то другое, то описывайте полностью что, как и нафига именно 13 герц. Но в любом случае на заказ не работаю, предложите в теме "Ищу исполнителя", думаю желающие сразу найдутся.

Alex_pcb
Offline
Зарегистрирован: 11.12.2017

13 гц потомучтона частотах 20 кГц и выше.....30 40 итд  работают лампы люминицентные, что в итоге дает засветку и ложные срабатыавания, не так часто но есть!. А данный прибор стоит именно в высокой освещености ламп. Приборы стоят в торговых центрах по городу Москвы, где нужно считать трафик - людей, пересечения луча короче.  

b707
Offline
Зарегистрирован: 26.05.2017

Alex_pcb пишет:

13 гц потомучтона частотах 20 кГц и выше.....30 40 итд  работают лампы люминицентные,

шикарное обьяснение : -  "13 Гц потому что 20КГц не подходит" :) А что, других частот, кроме 13 Гц и 20КГц - не существует? Зачем все-таки именно 13 Гц?

... если взялись какую-то штуку на заказ собрать - для ТЦ наверняка не бесплатно - то не надо потом по бесплатным форумам побираться, придумывайте сами.

Alex_pcb
Offline
Зарегистрирован: 11.12.2017

ой ладно, всё, сделали уже всё и работает!). Флуд пошел какой то не по теме....