AnalogInOutSerial_изменить частоту
- Войдите на сайт для отправки комментариев
Втр, 17/03/2020 - 09:18
Я не программист, но могу спаять-подключить.
Подскажите, в Arduino IDE есть пример скетча AnalogInOutSerial.
По умолчанию вывод ШИМ на 9 ногу. Вход - аналоговый, вывод 0.
Частота примерно 486 Гц. Есть ли возможность ее изменять так же по аналоговому входу.
Ну или хотя бы что-то подправить в проге, чтобы сделать ее меньше.
Лучше был бы первый вариант, с управлением по аналоговому входу.
const int analogInPin = A0; // Analog input pin that the potentiometer is attached to const int analogOutPin = 9; // Analog output pin that the LED is attached to int sensorValue = 0; // value read from the pot int outputValue = 0; // value output to the PWM (analog out) void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); // map it to the range of the analog out: outputValue = map(sensorValue, 0, 1023, 0, 255); // change the analog out value: analogWrite(analogOutPin, outputValue); // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2); }
Возможность - есть. Просто уменьшить частоту проще, на лету менять сложнее. Но, одной командой в обоих случаях не обойтись.
Тогда хотя бы уменьшить. Я так понимаю, просто на какое-то значение изменить нельзя.
Все привязано к "одному" месту. Если не сложно, поправьте код для уменьшения в 2 раза.
Возможность есть, если Вы знаете, как управлять на прямую таймером AVR. Нет плавной дискретности. Будут довольно большие шаги. Нужно точно знать пределы изменений. На stm32, плате блю пил можно сделать изменение частоты с шагом точно кратным глубине ШИМ. Вопрос остаётся открытым- зачем менять частоту?
Поиск в Яндес "arduino как изменить частоту шим" дает ссылку где все разжевано, и с примерами.
https://alexgyver.ru/lessons/pwm-overclock/
Для работы нужно. 488 многовато. Половина будет нормально.
Смотрел, там вроде скважность постоянная задается.
Мне нужно в коде в первом посте поставить частоту в 2 раза меньше той, что по умолчанию
с возможностью регулировать скважность с аналогового входа. Там все это работает, но частота высокая.
А если менять тактовую частоту вместо кварца, это будет работать?
С уже зашитым скетчем.
Смотрел, там вроде скважность постоянная задается.
Мне нужно в коде в первом посте поставить частоту в 2 раза меньше той, что по умолчанию
с возможностью регулировать скважность с аналогового входа. Там все это работает, но частота высокая.
Вот здесь есть готовый пример на 40кГц. В примере скважность тоже постоянная, но Вы можете менять как хотите - это константа в строке №9
andrey3824, Ардуино - программно-аппаратная платформа, созданная для того, чтобы существенно снизить уровень вхождения в программирование микроконтроллеров и облегчить первые шаги начинающим. Естественно, все это за счет существенных ограничений и снижения эффективности использования конкретных микроконтроллеров.
То, что Вы хотите, - изменить частоту ШИМ, - концепция Ардуино не предусматривает.
Следовательно, все упрощения и облегчения, предусмотренные в концепции Ардуино, не работают, и для решения задачи требуется обычное среднее профессиональное программирование. Другими словами, непрограммисту это не под силу.
Перед Вами выбор:
1. Заказать работу программисту в разделе "Ищу исполнителя".
2. Самому стать программистом, хотя бы начинающим (задача в принципе не сложная, но все равно очень далекая от скетча из первого сообщения).
3. Забыть об этой задаче и обходиться тем, что есть.
Давно бы так). Буду работать с тем, что есть..
Давно бы так). Буду работать с тем, что есть..
Вам в сообщении #4 дали ссылку, в код надо добавить 2 строчки.
Чем не устраивает?
в код надо добавить 2 строчки.
Чем не устраивает?
Как чем? А кто строки добавлять будет? Взял бы и добавил, а то как советовать, так все чатлане!
Попробую. Я принципиально не лезу туда, где вообще ничего не понимаю.
И изучать программирование из-за одной железки я не буду.
Поэтому и попросил помощи. Здесь же не 300 строк кода..
Поэтому и попросил помощи. Здесь же не 300 строк кода..
какой помощи? - скопировать для вас по той ссылке две готовых строки и вставить в ваш код? :)
Поэтому и попросил помощи.
Здесь форум тех, кто этим увлекается, а потому, если "не будешь", то ты здесь чужой и никому неинтересен.
А потому, помощи просить тебе нужно в специальном разделе на коммерческой основе. Ну, или забить на это дело и обойтись, если жаба душит.
А потому, помощи просить тебе нужно в специальном разделе на коммерческой основе. Ну, или забить на это дело и обойтись, если жаба душит.
да блин, Ворота, на кой тут коммерческий отдел? - речь идет о том, чтобы внимательно прочитать пол-странички текста на родном русском языке. Или у нас уже и Гайвер стал слишком сложным для понимания новичками? :)))))
Пойми, Андрей, дело не в строках.
Вот посмотри в эту тему. Я предложил человеку сделать то, что ему нужно, а он мне ответил - "не надо, идею понял, буду пыхтеть сам" потому, что ему это интересно. Но, тем не менее, на всякий случай, если у него не получится, я уже написал то, что ему надо, если он обратится - тут же дам. И там, ну, не триста строк, но близко к тому. А надо было бы, я бы и 500 написал - не проблема. Главное то здесь в том, что ему это интересно и мне это интересно, мы коллеги, мы - свои, вот и я помогаю ему с удовольствием , как своему!
Ты же заявляешь, что тебе это нах не нужно и изучать ты ничего не будешь. Ну, а мне в таком разе нах нужно ради тебя напрягаться? Вот нафига? Тебе неинтересно то, что интересно мне - мы чужие.
Уловил разницу между моим отношением к нему и к тебе?
Съел.
Люди падкие на полемику, только кость покажи.
Но сделал все по-своему.