Технический форум по робототехнике.
sound » 29 май 2011, 09:12
Здраствуйте!подскажите плиз как работать с пьезолектричий излучатель без встроеного генератора.а точнее как заставить его издовать различные звуки при нажатии на определенную кнопку!?
HarryStar » 29 май 2011, 16:49
Это очень просто. Подключите его к любому пину порта А и запустите следующую программу:
- Код: Выделить всё • Развернуть
#include "delay.h"
main()
{
PORTA=0x00; DDRA=0xFF;
while(1)
{
PORTA = 0x00;
delay_ms(5);
PORTA = 0xFF;
delay_ms(5);
}
}
Под ваш компилятор и МК я думаю сможете адаптировать.
sound » 06 июн 2011, 17:52
а вот такаой вареант будет работать???
if (bit_is_clear(PINC, 2)) {
PORTD.7=~PIND.7;
delay_us(1911);};
или вот такой вариант?
if (bit_is_clear(PINC, 2)) {
PORTA.1=0;
delay_us(время задержки); // пауза
PORTA.1=1;
delay_us(время задержки); // пауза
}
HarryStar » 06 июн 2011, 19:23
да будет, только в цикл надо запихать
sound » 06 июн 2011, 21:07
что в цыкал?как я думаю это все дело будет происходить при прирываини тамеров счетчиков!?а это и есть цыкл...?или я не правельно думаю.
HarryStar » 06 июн 2011, 23:48
Это не принципиально, можно в цикл, можно по таймеру, а вот с грамотностью беда
sound писал(а):что в цыкал?как я думаю это все дело будет происходить при прирываини тамеров счетчиков!?а это и есть цыкл...?или я не правельно думаю.
Красным ошибки, а в сиреневых местах должен быть пробел.
Аж читать неприятно. Бывает торопишься, делаешь пару ошибок, но это перебор.
solit » 06 июн 2011, 23:53
Рекомендую свериться с мануалом на излучатель, бывают такие у которых рабочее напряжение 30В, и от 5В они не запищат, и еще у некоторых бывает очень высокая добротность, т.е. нормально пищать они будут только на определенной частоте.
Если не жалко двух пинов, то лучше подключать его не к земле и пину, а к двум пинам и подавать на них по очередно 01 и 10 - так в два раза громче получится.
sound » 10 июн 2011, 06:55
а вот теперь..такой вопрос как сделать что бы,пищалка пищада разные частоты но не спомощью команды делай ,а защет процедур прирывания!?
solit » 10 июн 2011, 13:04
Не надо прерывания. Если есть свободный таймер (лучше 16 битный), то настраиваешь его в режим "wave form generation" пищалку подключаешь к выходам OCnx. Для смены частоты перепрограмируешь регистры OCRnx и ни каких прерываний!