AnalogInOutSerial_изменить частоту

andrey3824
Offline
Зарегистрирован: 17.03.2020

Я не программист, но могу спаять-подключить. 
Подскажите, в 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);
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Возможность - есть. Просто уменьшить частоту проще, на лету менять сложнее. Но, одной командой в обоих случаях не обойтись.

andrey3824
Offline
Зарегистрирован: 17.03.2020

Тогда хотя бы уменьшить. Я так понимаю, просто на какое-то значение изменить нельзя.
Все привязано к "одному" месту. Если не сложно, поправьте код для уменьшения в 2 раза.

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

Возможность есть, если Вы знаете, как управлять на прямую таймером AVR. Нет плавной дискретности. Будут довольно большие шаги. Нужно точно знать пределы изменений. На stm32, плате блю пил можно сделать изменение частоты с шагом точно кратным глубине ШИМ. Вопрос остаётся открытым- зачем менять частоту?

Bruzzer
Offline
Зарегистрирован: 17.03.2020

Поиск в Яндес "arduino как изменить частоту шим" дает ссылку где все разжевано, и с примерами.

https://alexgyver.ru/lessons/pwm-overclock/

andrey3824
Offline
Зарегистрирован: 17.03.2020

Для работы нужно. 488 многовато. Половина будет нормально.
 

andrey3824
Offline
Зарегистрирован: 17.03.2020

Смотрел, там вроде скважность постоянная задается.
Мне нужно в коде в первом посте поставить частоту в 2 раза меньше той, что по умолчанию
с возможностью регулировать скважность с аналогового входа. Там все это работает, но частота высокая.

andrey3824
Offline
Зарегистрирован: 17.03.2020

А если менять тактовую частоту вместо кварца, это будет работать?
С уже зашитым скетчем.

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

andrey3824 пишет:

Смотрел, там вроде скважность постоянная задается.
Мне нужно в коде в первом посте поставить частоту в 2 раза меньше той, что по умолчанию
с возможностью регулировать скважность с аналогового входа. Там все это работает, но частота высокая.

Вот здесь есть готовый пример на 40кГц. В примере скважность тоже постоянная, но Вы можете менять как хотите - это константа в строке №9

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

andrey3824, Ардуино - программно-аппаратная платформа, созданная для того, чтобы существенно снизить уровень вхождения в программирование микроконтроллеров и облегчить первые шаги начинающим. Естественно, все это за счет существенных ограничений и снижения эффективности использования конкретных микроконтроллеров.

То, что Вы хотите, - изменить частоту ШИМ, - концепция Ардуино не предусматривает.

Следовательно, все упрощения и облегчения, предусмотренные в концепции Ардуино, не работают, и для решения задачи требуется обычное среднее профессиональное программирование. Другими словами, непрограммисту это не под силу.

Перед Вами выбор:

1. Заказать работу программисту в разделе "Ищу исполнителя".

2. Самому стать программистом, хотя бы начинающим (задача в принципе не сложная, но все равно очень далекая от скетча из первого сообщения).

3. Забыть об этой задаче и обходиться тем, что есть.

andrey3824
Offline
Зарегистрирован: 17.03.2020

Давно бы так). Буду работать с тем, что есть..

b707
Offline
Зарегистрирован: 26.05.2017

andrey3824 пишет:

Давно бы так). Буду работать с тем, что есть..

Вам в сообщении #4 дали ссылку, в код надо добавить 2 строчки.

Чем не устраивает?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

b707 пишет:

в код надо добавить 2 строчки.

Чем не устраивает?

Как чем? А кто строки добавлять будет? Взял бы и добавил, а то как советовать, так все чатлане!

andrey3824
Offline
Зарегистрирован: 17.03.2020

Попробую. Я принципиально не лезу туда, где вообще ничего не понимаю. 
И изучать программирование из-за одной железки я не буду. 
Поэтому и попросил помощи. Здесь же не 300 строк кода..

b707
Offline
Зарегистрирован: 26.05.2017

andrey3824 пишет:

Поэтому и попросил помощи. Здесь же не 300 строк кода..

какой помощи? - скопировать для вас по той ссылке две готовых строки и вставить в ваш код? :)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

andrey3824 пишет:
И изучать программирование из-за одной железки я не буду. 

Поэтому и попросил помощи.

Здесь форум тех, кто этим увлекается, а потому, если "не будешь", то ты здесь чужой и никому неинтересен.

А потому, помощи просить тебе нужно в специальном разделе на коммерческой основе. Ну, или забить на это дело и обойтись, если жаба душит.

b707
Offline
Зарегистрирован: 26.05.2017

Ворота пишет:

А потому, помощи просить тебе нужно в специальном разделе на коммерческой основе. Ну, или забить на это дело и обойтись, если жаба душит.

да блин, Ворота, на кой тут коммерческий отдел? - речь идет о том, чтобы внимательно прочитать пол-странички текста на родном русском языке. Или у нас уже и Гайвер стал слишком сложным для понимания новичками? :)))))

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

andrey3824 пишет:
Здесь же не 300 строк кода..

Пойми, Андрей, дело не в строках.

Вот посмотри в эту тему. Я предложил человеку сделать то, что ему нужно, а он мне ответил - "не надо, идею понял, буду пыхтеть сам" потому, что ему это интересно. Но, тем не менее, на всякий случай, если у него не получится, я уже написал то, что ему надо, если он обратится - тут же дам. И там, ну, не триста строк, но близко к тому. А надо было бы, я бы и 500 написал - не проблема. Главное то здесь в том, что ему это интересно и мне это интересно, мы коллеги, мы - свои, вот и я помогаю ему с удовольствием , как своему! 

Ты же заявляешь, что тебе это нах не нужно и изучать ты ничего не будешь. Ну, а мне в таком разе нах нужно ради тебя напрягаться? Вот нафига? Тебе неинтересно то, что интересно мне - мы чужие. 

Уловил разницу между моим отношением к нему и к тебе?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

b707 пишет:
Или у нас уже и Гайвер стал слишком сложным для понимания новичками? :)))))
Если нужно куда-то вставить две строки, то для полностью нулевых - да - это сложно. А изучать что-либо поциент ради одной жезезки не будет. Беда.

andrey3824
Offline
Зарегистрирован: 17.03.2020

Съел.

andrey3824
Offline
Зарегистрирован: 17.03.2020

Люди падкие на полемику, только кость покажи.

 

andrey3824
Offline
Зарегистрирован: 17.03.2020

Но сделал все по-своему.