Как сгенерировать сигнал 36kHz

timer_23
Offline
Зарегистрирован: 06.08.2014

Не подскажете как на ардуинке сгенерировать сигнал частотой 36kHz и скважностью 50%?

nik182
Offline
Зарегистрирован: 04.05.2015

А что поиск не работает? Или прочитать список функций вверху страницы недоступен. Найти страничку http://arduino.ru/Reference/Tone религия не позволяет?

timer_23
Offline
Зарегистрирован: 06.08.2014

Странно что поиск меня к этому не привел( находил только темы с каким то длинным кодом... Спасибо за ссылку!

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

странно. а программа Blink чем вам не подошла?

1000 мс /36 кгц = 28 мс  { 14 "1" и 14 "0"}

void setup() {
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH); 
  delay(14);    
  digitalWrite(13, LOW); 
  delay(14);  
}

конечно там не точно 36 кГц, а чуть меньше.Но ведь принцип сохранился. Тем более на форуме пристегнута тема по этому поводу.

http://arduino.ru/forum/programmirovanie/etyudy-dlya-nachinayushchikh-blink-i-bez-delay-i-bez-millis

есть еще путь tone(pin, frequency)

http://arduino.ru/Reference/Tone

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

qwone пишет:

а программа Blink чем вам не подошла?

дык ...

timer_23 пишет:
с каким то длинным кодом...

:)))))

nik182
Offline
Зарегистрирован: 04.05.2015

qwone пишет:

странно. а программа Blink чем вам не подошла?

1000 мс /36 кгц = 28 мс  { 14 "1" и 14 "0"}

void setup() {
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH); 
  delay(14);    
  digitalWrite(13, LOW); 
  delay(14);  
}

конечно там не точно 36 кГц, а чуть меньше.Но ведь принцип сохранился. Тем более на форуме пристегнута тема по этому поводу.

http://arduino.ru/forum/programmirovanie/etyudy-dlya-nachinayushchikh-blink-i-bez-delay-i-bez-millis

есть еще путь tone(pin, frequency)

http://arduino.ru/Reference/Tone

Извините, но получается 28 микросекунд. Ваш код дает 28 милисекунд или 36 герц. Как то я не уверен, что даже используя delayMicroseconds() можно подобрать достаточно точно 36кГц. Уж очень много кода висит на digitalWrite и delayMicroseconds().