Помогите новичку получить заданную частоту
- Войдите на сайт для отправки комментариев
Пнд, 24/12/2018 - 20:49
Как из ARDUINO получить прямоугольный сигнал частотой 50Гц?
Как из ARDUINO получить прямоугольный сигнал частотой 50Гц?
Как из ARDUINO получить прямоугольный сигнал частотой 50Гц?
Легко! )))
/* Blink without Delay Turns on and off a light emitting diode (LED) connected to a digital pin, without using the delay() function. This means that other code can run at the same time without being interrupted by the LED code. The circuit: - Use the onboard LED. - Note: Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products created 2005 by David A. Mellis modified 8 Feb 2010 by Paul Stoffregen modified 11 Nov 2013 by Scott Fitzgerald modified 9 Jan 2017 by Arturo Guadalupi This example code is in the public domain. http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay */ // constants won't change. Used here to set a pin number: const int ledPin = LED_BUILTIN;// the number of the LED pin // Variables will change: int ledState = LOW; // ledState used to set the LED // Generally, you should use "unsigned long" for variables that hold time // The value will quickly become too large for an int to store unsigned long previousMillis = 0; // will store last time LED was updated // constants won't change: const long interval = 10; // interval at which to blink (milliseconds) void setup() { // set the digital pin as output: pinMode(ledPin, OUTPUT); } void loop() { // here is where you'd put code that needs to be running all the time. // check to see if it's time to blink the LED; that is, if the difference // between the current time and last time you blinked the LED is bigger than // the interval at which you want to blink the LED. unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time you blinked the LED previousMillis = currentMillis; // if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } // set the LED with the ledState of the variable: digitalWrite(ledPin, ledState); } }Благодарю
Благодарю
не за что, начните знакомство с примеров в IDE, там много чего )))
Хорошо
Помогите новичку получить заданную частоту
Зарегистрирован:30.12.2014 -- хрена се новички!
----------------------------
Тема прибита гвоздями в разделе программирование! Там и калькулятор частот есть! Чукча - не читатель?
Евгений Петрович, опять списываете у David A. Mellis! А где же таймеры, регистры, профессионализьм?
Да, зарегестрировался давно, но зажожу редко, а вот за ссылку по тебе благодарю, пошел изучать!!!
http://arduino.ru/Reference/Tone
За функцию tone знаю, но она не работает на маленькой частоте, а мне нужно около 20Гц
За функцию tone знаю, но она не работает на маленькой частоте, а мне нужно около 20Гц
Сначала было 50Гц. Какой вопрос - таков ответ. PS Tone() работает от 31Гц.
Евгений Петрович, опять списываете у David A. Mellis!
Who такой?
Who его знает :(
Евгений Петрович, опять списываете у David A. Mellis!
Who такой?
Who его знает :(
тут меня гуглом научили пользоваться или разбанили )))
Помогите новичку получить заданную частоту
Зарегистрирован:30.12.2014 -- хрена се новички!
----------------------------
Тема прибита гвоздями в разделе программирование! Там и калькулятор частот есть! Чукча - не читатель?
Кстати! А за калькулятор особенное спасибо!!!
Евгений Петрович, опять списываете у David A. Mellis!
Who такой?
Who его знает :(
Простите, что-то в голове помутилось. Показалось, что первый пост - Ваш и строка #18 при нём...
доброго времени.
собрал на ардуино-нано ламповые часы . с D9 идёт ШИМ на высоковольтный преобразователь. в скетче строка " TCCR1B = TCCR1B & 0b11111000 | 0x01; " . сигнал по мультиметру с частотой 31,37 кГц. напряжение на лампы выходит 147 вольт, что очень мало. суть вопроса : что изменить в строке дабы получить 3 варианта частоты 35кГц ,40кГц и 45кГц (чтобы подобрать напряжение на преобразователе. нужно 175в )
Изменеием данной строки желаемыой частоты получить никак не удастся.
а вообще можно с этого выхода получить 40кГЦ ?
доброго времени.
собрал на ардуино-нано ламповые часы . с D9 идёт ШИМ на высоковольтный преобразователь. в скетче строка " TCCR1B = TCCR1B & 0b11111000 | 0x01; " . сигнал по мультиметру с частотой 31,37 кГц. напряжение на лампы выходит 147 вольт, что очень мало. суть вопроса : что изменить в строке дабы получить 3 варианта частоты 35кГц ,40кГц и 45кГц (чтобы подобрать напряжение на преобразователе. нужно 175в )
Enter desired frequency in Hz
(use decimal point for fractions. I.e. 0.12 means 0,12Hz):
Results for frequency: 35000.00Hz
Prescaler: 1; MaxValue: 228; Frequency: 34934.50Hz; Diff: 65.50Hz
Prescaler: 8; MaxValue: 28; Frequency: 34482.76Hz; Diff: 517.24Hz
Prescaler: 64; MaxValue: 3; Frequency: 31250.00Hz; Diff: 3750.00Hz
Prescaler: 256; MaxValue: 0; Frequency: 31250.00Hz; Diff: 3750.00Hz
Prescaler: 1024 - Not possible
Enter desired frequency in Hz
(use decimal point for fractions. I.e. 0.12 means 0,12Hz):
Results for frequency: 40000.00Hz
Prescaler: 1; MaxValue: 199; Frequency: 40000.00Hz; Diff: 0.00Hz
Prescaler: 8; MaxValue: 24; Frequency: 40000.00Hz; Diff: 0.00Hz
Prescaler: 64; MaxValue: 2; Frequency: 41666.67Hz; Diff: 1666.67Hz
Prescaler: 256; MaxValue: 0; Frequency: 31250.00Hz; Diff: 8750.00Hz
Prescaler: 1024 - Not possible
Enter desired frequency in Hz
(use decimal point for fractions. I.e. 0.12 means 0,12Hz):
Results for frequency: 45000.00Hz
Prescaler: 1; MaxValue: 177; Frequency: 44943.82Hz; Diff: 56.18Hz
Prescaler: 8; MaxValue: 21; Frequency: 45454.55Hz; Diff: 454.55Hz
Prescaler: 64; MaxValue: 2; Frequency: 41666.67Hz; Diff: 3333.33Hz
Prescaler: 256; MaxValue: 0; Frequency: 31250.00Hz; Diff: 13750.00Hz
Prescaler: 1024 - Not possible
Enter desired frequency in Hz
(use decimal point for fractions. I.e. 0.12 means 0,12Hz):
вообще ничего не понял к своему стыду.
вот кусок кода. что мне прописать чтобы получить 40кц ???
void setup() { TCCR1B = TCCR1B & 0b11111000 | 0x01; // задаем частоту ШИМ на 3 выводе 30кГц analogWrite(9, 85); //если запитывать от блока питания 9в time.begin(); //задаем режим работы выходов микроконтроллера for (int i = 0; i < 4; i++) { pinMode(def_pin[i], OUTPUT); } for (int i = 0; i < 6; i++) { pinMode(keys_pin[i], OUTPUT); }Если ничего непонятно, то возмите библиотеку TimerOne
код чужой, а автор молчит как рыба об лёд
.изменить код как тут
или тут поправить, можно дл 255
фигово быть бестолковым. ну не дано мне таймерами играть
Вот пример использования библиотеки TimerOne. Он, малость, кривоват, но для начала пойдет
#include <TimerOne.h> const int fanPin = 9; void setup(void) { Timer1.initialize(40); // 40 us = 25 kHz Serial.begin(9600); } void loop(void) { // slowly increase the PWM fan speed // for (float dutyCycle = 30.0; dutyCycle < 100.0; dutyCycle++) { Serial.print("PWM Fan, Duty Cycle = "); Serial.println(dutyCycle); Timer1.pwm(fanPin, (dutyCycle / 100) * 1023); delay(500); } }В строке 8 задаете период в микросекундах. Надеюсь сумеете пересчитать желаемую частоту в период?
Если же говорить о напряжении, то при использовании ШИМ оно, в первую очередь, зависит от DutyCycle а не от частоты. В данном примере DutyCycle постепенно меняется от 30 до 100 процентов.
Запустите этот скетч и меряйте напряжение на вашем преобразователе. Только подключите такую нагрузку, которую сложно или не жалко будет сжечь.
спасибо, попробую
а вообще можно с этого выхода получить 40кГЦ ?
Я же Вам дал ссылку на тему, где куча примеров и калькулятор есть. Не прочитали? Ну, значит сами себе злобный буратино.
а вообще можно с этого выхода получить 40кГЦ ?
Я же Вам дал ссылку на тему, где куча примеров и калькулятор есть. Не прочитали? Ну, значит сами себе злобный буратино.
Чукча не читатель )))
Ему вообще в его скетче данными в одной строке поиграться в сторону увеличения стоит и чую это решило бы проблему
Чукча не читатель )))
Ему вообще в его скетче данными в одной строке поиграться в сторону увеличения стоит и чую это решило бы проблему
чукча читатель, просто он тормозит после работы сильно.
этой строчкой да, играл. помогает. но теперь вылезла другая песня - железо. уходит мосфет в режим кипятильника. но это уже знаю как лечить.
всем спасибо