Ребята ,помогите новичку написать скетч .

rustam7317
Offline
Зарегистрирован: 30.08.2016

Очень нужна помощь в  написании скетча .Ардуино нано v-3 и потенциометр , на выходе шим частотой 120 герц ,период 8,33 милескунд .Чтобы при вращении потенциометра, частота и период оставались неизменными ,а длительность менялась до 7.12 милисекунд

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ссылка раз: http://playground.arduino.cc/Code/Timer1

Ссылка два: http://playground.arduino.cc/Main/RotaryEncoders

Разумному - достаточно ;)

rustam7317
Offline
Зарегистрирован: 30.08.2016

спасибо

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

rustam7317 пишет:

Очень нужна помощь в  написании скетча .Ардуино нано v-3 и потенциометр , на выходе шим частотой 120 герц ,период 8,33 милескунд .Чтобы при вращении потенциометра, частота и период оставались неизменными ,а длительность менялась до 7.12 милисекунд

Длительность чего? Если "частота и период оставались неизменными", а ни о каких других длительностях в посте речи не было?

rustam7317
Offline
Зарегистрирован: 30.08.2016

длительность импульса

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

Т.е. скаважность должна меняться что ли?

rustam7317
Offline
Зарегистрирован: 30.08.2016

да

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

Понятно, ну делайте, ссылки Вам дали. Настраиваете штатный ардуиновский шим на нужную частоту и гоняеете скважность от 0 до бесконечности. Как это делать, по тем ссылкам есть.

rustam7317
Offline
Зарегистрирован: 30.08.2016

понял ,попробую разобраться , спасиб

rustam7317
Offline
Зарегистрирован: 30.08.2016

Ребята ,очень большая просьба ,не моглибы написать скетч , хотябы примерно как он должен выглядеть а цифры переделаю сам

vvadim
Offline
Зарегистрирован: 23.05.2012

в раздел Ищу исполнителя религия не позволяет обратиться))))

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

rustam7317 пишет:

Ребята ,очень большая просьба ,не моглибы написать скетч , хотябы примерно как он должен выглядеть а цифры переделаю сам

А вот и не переделаешь. Там даже не разберешся.

// программа генератор на выходе шим частотой 120 герц 
/*
  генератор сигнал -> 13
            земля  -> GND
   потенциметр верхн выв -> =5в
               сред выв  -> A0
             нижний выв  -> GND              
*/
const int out_pin=13;// нога генератора
const int analogInPin = A0;// нога потенциометра
float duty_cycle ; // Скважность
uint16_t t1,t2;// время 1 и время 0

void flashing_non_stop_program(uint16_t time_0,uint16_t time_2 ) {
  static bool state = 0;
  static uint32_t timing = 0;
  if (millis()<timing) return;
  state = !state;
  timing += state ? time_0 : time_2 ;
  digitalWrite(out_pin, state);
}
void setup() {

  pinMode(out_pin, OUTPUT);
}
void loop() {
  duty_cycle = analogRead(analogInPin)/1024;
  t1 = 1000/120*duty_cycle; // 120 это частота
  t2 = 1000/120 -t1;
  flashing_non_stop_program(t1,t2);
}

 

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

qwone, так частота будет нестабильна, мы же это когда-то уже обсуждали. Чтобы иметь стабильную частоту, нужно настраивать таймеры и работать через них.

vvadim
Offline
Зарегистрирован: 23.05.2012

мыша уже весь сыр съела)))

пардон что не по теме

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

rustam7317 пишет:

Ребята ,очень большая просьба ,не моглибы написать скетч , хотябы примерно как он должен выглядеть а цифры переделаю сам

Я с Вас балдею!

Вам нужно настроить свою частоту ШИМ а потом спокойно управлять скважностью с помощью обычного analogWrite - я Вам это уже писал.

Надеюсь, что analogWrite Вы умеете пользоваться.

Осталось только настроить нужную частоту ШИМ - 120Гц.

Ну, и в чём проблема? В верхнем правом углу есть Поиск. Я вбил туда "настройка частоты ШИМ" и сразу же получил:

1. http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino

2. http://arduino.ru/forum/programmirovanie/pwm-biblioteka-shim-arduino

И ещё много всего. В одной из тем вообще была вот такая ссылка - тупо и топорно (и не 120, а 122,5) зато в одну строчку.

Что мешало Вам поискать самому?

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

vvadim пишет:

мыша уже весь сыр съела)))

"Артист обязан переодеваться!" :)))

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

ЕвгенийП пишет:

qwone, так частота будет нестабильна, мы же это когда-то уже обсуждали. Чтобы иметь стабильную частоту, нужно настраивать таймеры и работать через них.

Частота будет стабильна с точностью + - 1миллисек(0.001 сек).Если надо точнее делаем с помощью micros(). ТС не говорил про точность. Он и без точности очень плавает.

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

qwone пишет:

Частота будет стабильна с точностью + - 1миллисек(0.001 сек).Если надо точнее. Точнее делаем с помощью micros(). ТС не говорил про точность. Он и без точности очень плавает.

Нет, так будет, если Вы прерывания закроете. А если оставить открытыми, то будет вклиниваться прерывание таймера 0 (которое как раз для миллис нужно) и его время обработки будет подтормаживать loop. Вот смотрите, здесь подробно обсуждалось с осциллограммой, чуть ниже парни пробовали прерывания закрывать (тоже осциллограмма есть) - тогда действительно хорошо.

rustam7317
Offline
Зарегистрирован: 30.08.2016

Большое спасибо .

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

vvadim пишет:

мыша уже весь сыр съела)))

Не, это кошак мышу слопал - вишь какой толстый!