Добрый день просьба помочь кто знает , четвертый день не могу запустить чтобы два нема 17 вращались с регулировкой скорости от потенциометра (резистора), каждый от своего потенциометра, независимо друг от друга. за основу взят вот этот скетч #include <Stepper.h> const int stepsPerRevolution = 2500; // «» - это количество шагов, за которые вал выполняет // полный оборот; у вашего мотора это число может быть другим // инициализируем библиотеку Stepper на контактах 3,5: Stepper myStepper(stepsPerRevolution, 3, 5); int stepCount = 0; // количество шагов, которые сделал мотор /*Управляем сервой в зависимости от освещенности Используем фотосопротивление, может быть любой аналоговый сенсор */ #include <Servo.h> //Подключаем библиотеку Servo Servo motor; int sensePin = 1;//Обьявляем 0 аналоговый пин void setup() { analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта.Необязательное /* Будем смотреть вывод на сериальном мониторе с Ардуино, для чего его инициализируем Заодно можно посмотреть диапазон работы датчика чтобы в этом диапазоне поворачивать серву*/ Serial.begin(9600); motor.attach(4); // Подключаем серву на 5 пин } void loop() { // Печатаем на монитор Serial.println(analogRead(sensePin)); int val = analogRead(sensePin);// Создаем переменную val для чтения analogRead val= constrain(val,0 ,1000);// Ограничиваем диапазон работы датчика посмотрев его на мониторе int motorAngl = map(val,1023, 0, 180,0);//Преобразуем диапазон выдаваемый датчиком в диапазон углов сервы motor.write(motorAngl);// Устанавливаем серву на угол который получаем через преобразование // считываем значение потенциометра: int sensorReading = analogRead(A0); // подгоняем считанное значение под диапазон от «0» до «100»: int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // задаем скорость мотора: if (motorSpeed > 0) { myStepper.setSpeed(motorSpeed); // шагаем на 1/100 от полного оборота: myStepper.step(stepsPerRevolution / 100); } } удалено все что касается серво и продублирован так как я себе это представлял, получилось вот это #include <Stepper.h> const int stepsPerRevolution = 2500; // «» - это количество шагов, за которые вал выполняет // полный оборот; у вашего мотора это число может быть другим const int stepsPerRevolution1 = 2500; // «» - это количество шагов, за которые вал выполняет // инициализируем библиотеку Stepper на контактах 3,5: Stepper myStepper(stepsPerRevolution, 3, 5); Stepper myStepper1(stepsPerRevolution, 4, 6); int stepCount = 0; // количество шагов, которые сделал мотор int stepCount1 = 1; // количество шагов, которые сделал мотор void setup() { } void loop() { { // считываем значение потенциометра: int sensorReading = analogRead(A0); // подгоняем считанное значение под диапазон от «0» до «100»: int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // задаем скорость мотора: if (motorSpeed > 0) { myStepper.setSpeed(motorSpeed); // шагаем на 1/100 от полного оборота: myStepper.step(stepsPerRevolution / 100); }} { // считываем значение потенциометра: int sensorReading1 = analogRead(A1); // подгоняем считанное значение под диапазон от «0» до «100»: int motorSpeed1 = map(sensorReading1, 0, 1023, 0, 100); // задаем скорость мотора: if (motorSpeed1 > 0) { myStepper1.setSpeed(motorSpeed1); // шагаем на 1/100 от полного оборота: myStepper1.step(stepsPerRevolution1 / 100); } } } В результате когда скетч для одного мотора все работает отлично хорошо, когда для двух, то они работают но синхронно и регулируются обоими потенциометрами. Добавлю , мне реверс не нужен, использую драйвера А4988, ИСПОЛЬЗУЮ ТОЛЬКО СТЭП , плис , подскажите что исправить, правда я очень слаб в этом деле посему если такое возможно то более доступным "языком"
…………. да, это именно тот доступный и понятный ответ, как я и хотел...…….. ......….если кто то еще захочет подобное написать, пожалуйста не надо , просто представьте что вы что то ищите, перечитываете в надежде почерпнуть что то ценное , тратите уйму времени , а натыкаетесь на мусор который люди от избытка времени ссыпают во все дыры инета ……..
изучи периферию мк, прежде чем за него браться. Будет что не понятно - задай конкретный вопрос. http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh128/16.htm На блюдечке да с золотой каёмочкой блюдо дают в другом разделе форума.
у тебя руки чешутся? пишешь бред, ты для замены колеса изучаете основы автомобилестроения? ...….нахватаетесь вершков и пальцы гнете , а капнуть глубже то выяснится , что сами толком не знаете потому и не отвечаете , встречал таких, после как сказал "напиши скетч заплачу" , чел пропал и умничать перестал.... я от тебя ничего не требую, я прошу тех кто знает и кому не лень указать на ошибки доступным языком или дать ссылку где такое скачать можно отвечать не надо, диалог окончен...
Я почему и не хочу ничего писать и давать конкретных примеров, ибо опять будет полное неудовлетворение - у меня твой код не компилируется, мне сюда надо кнопочку вставить, дисплей прикрутить, как мне это сделать, помоги пожалуйста ....почему ты не хочешь помогать, ведь это твой код и т. д. и т. п.
Да не надо ничего оформлять- он код управления сервой хочет переделать под шаговик. Это равносильно написанию кода с нуля.
Да, но там нет управления скоростью по отдельности, ( я не нашел) а если я его там прописываю то двигателя мешают друг другу, по одному работают отлично , а пара...………………. ладно , почитал тут в разных разделах, похоже помощь искать тут бесполезно, зря регистрировался ……………………..
Ну ты же не говоришь, что конкретно у тебя не получается. В своем коде, прежде всего, ты должен лучше всех разбираться. А за готовым кодм в другой раздел.