Технический форум по робототехнике.
contr » 09 июл 2009, 00:33
если с ТСОП работаете, то частота должна быть не 30кГц, а та которую этот ТСОП понимает.
Lockdog » 09 июл 2009, 00:38
Мой тсоп как раз и понимает частоту 30 кГц
avr123.nm.ru » 09 июл 2009, 00:42
Lockdog писал(а):Блин) Что же такое.
Я прошу программный пример, как с частотой 30 кГц что-то передать с ноги TX
Вы ФОРМУЛИРОВАТЬ учитесь правильно и ответы будут про то о чем вы спрашиваете !
При таком "извратном" сигнале наверно лучше ШИМ ноги использовать + софтверный UART управляющий направлением работы ШИМ ноги.
Добавлено спустя 1 минуту 27 секунд:У ATmega48 6 ШИМ - ШИМ в AVR это задача упражнение 8
2 ШИМ на моторы можно использовать и
4 ШИМ на ИК диоды.
Lockdog » 09 июл 2009, 00:55
софтверный UART управляющий направлением работы ШИМ ноги.
Это как?
avr123.nm.ru » 09 июл 2009, 01:08
софтверный - програмный значит. Но вместо дерганья ногой он пусть дергает бит в регистре DDR некоторой ШИМ ноги на которую ШИМ 30 Кгц клбасится.
Управление ножками и регистрами - задача упражнение 1, диаграмма передачи UART - задача 4 и 5, генерация ШИМ - задача 8 учебного курса по AVR. Денек почитать по-програмить и этот кусочек кода сделаете наерняка.
Кстати так можно и независимо практически рассылать данные и одновременно тоже причем разные.
Можно и 4 обычных софтовых UART сделать на 4 любых ноги и ИХ диоды все питать через ключ от ШИМ ноги на которой ШИМ будет 30 Кгц.
Добавлено спустя 10 минут 8 секунд:
Если програмить и схемки рисовать не хотите то подождите не много вам наверно blindman сделает основу. Или ЭдГул на Васике.
nest » 10 июл 2009, 20:16
чё то заблудились...
Lockdog, чего то ещё не понятно ?
кстати, LB1832 тож можно извратиться применить для моторов. с ней напругу можно до 1,6 вольт убавить. хотя там полтора моста всего. и корпус SSOP24.
Lockdog » 10 июл 2009, 22:31
То чно написал авр123 я так и не понял((( Я понимаю что такое софтверный уарт, но вот как с этим работать? Грубо говоря, нужно подключить анод ИК-диода к ноге TX передающего МК, а выход TSOP'а к ноге RX принимающего МК. Мне нужно понять как передавать сигнал с частотой 30 кГц? И могу ли я например передать что-то через putchar и принять на другом МК, используя getchar таким способом?
Добавлено спустя 14 минут 35 секунд:
P.S. LB1838 отлично работает;)
Добавлено спустя 1 час 6 минут 12 секунд:
Ещё я спаял зарядник для литиего аккума на микре MAX1555, работает)))
По поводу передатчика: если я повешу на ногу TX ик-диод и буду подавать на эту ногу ШИМ с нужной частотой, то можно будет передавать данные по усарту?
nest » 11 июл 2009, 00:45
вот примерно так. но возможны и варианты.
вывод OCR сконфигурить на вывод твоих 30 кГц. (плюс-минус пару сотен Гц тож пойдёт)
учти ограничение скорости твоего TSOP-а (кажися макс. 9600 кбпс).
несколько УАРТов не надо. разгребать комманды - програмно. но сначала научись просто байты совать
avr123.nm.ru » 11 июл 2009, 01:20
Резистор токо ограничивающий надо всегда в цепь светодиода - сугубо ИМХО.
Логику включения ИК диода лучше б изменить - а то чтоб не светил без передачи надо будет ШИМ еще вкл-выкл. Т.е. получается один ключ pnp к +5 вольтам питает ШИМ-ом через резисторы аноды всех ИК излучателей. А катоды их к выходам UART подключены. Токда ИК будет светить только при передаче данных.
nest » 11 июл 2009, 01:43
ну там разберётся уже
да, резистор забыл.
или чего там ? мега8 ? у неё нету разве переключения логики работу УАРТ ?
аааа !!! ещё прерывание от TSOP надо вырубать во время передачи... а то будет сплошное эхо как со слоном в анекдоте
Lockdog » 11 июл 2009, 10:36
Спасибо огромное! Буду колдовать))))
MiBBiM » 11 июл 2009, 11:02
если шим вывести на ногу диода, а tx - на базу транзистора, то энергопотребление получится сократить? или я путаю что-то с чем-то?
avr123.nm.ru » 11 июл 2009, 17:11
Выше написал вариант: ключ pnp к +5 вольтам питает ШИМ-ом через резисторы аноды всех ИК излучателей. А катоды их к выходам UART подключены - без передачи на них лог. 1
Токда ИК будет светить только при передаче данных.
MiBBiM » 11 июл 2009, 19:35
и верно, не читал прст я
Lockdog » 12 июл 2009, 17:18
Помогите с кодом:
- Код: Выделить всё • Развернуть
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: CTC top=OCR1A
// OC1A output: Toggle
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x40;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x84;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
Тут должна генериться частота 30 кГц, всё ли правильно? Частота МК 8 МГц.
Частоту считал по формуле из даташита:
f=f_clk/2*N*(1+OCRnA) OCRnA у меня получилось 132 (или 0x84).
Предделитель я так понял = 1 или нет?