Дублирование серво

Dima Bichyl

✩✩✩✩✩✩✩
5 Сен 2020
5
0
Здравствуйте уменя есть прошывка для управления 2 серво спомощь шым 2 контролёра может кто-то продублировать параметры для ещо одного серво и шым. Штобы было 3 серво и для каждого свой шым контролёр Ето мой первый проект прошу помощи.Screenshot_2020-11-01-20-55-27-921_com.google.android.youtube.jpg
Делаю на ардуино нано
Шым подключен на A0 а серво D10

//NEURONET FOR MARK-11.(HELMET)
#include <Servo.h>//Library for mark11

Servo myservo;
Servo myservo1;// constant for servocontrol
const int analogInPin =A0;
const int analogInPin1 =A1;//connect to A0 pin
int sensorValue;
int sensorValue1;
void setup(){
myservo.attach(9);
myservo1.attach(10);
Serial.begin(9600);
}
void loop(){
sensorValue=analogRead(analogInPin);
sensorValue=map(sensorValue,0,1023,0,255);
myservo.write(sensorValue);
Serial.println(analogInPin);
delay(2);
///////////////////
sensorValue1=analogRead(analogInPin1);
sensorValue1=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue1);
Serial.println(analogInPin1);
delay(2);
}
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Что касается вопроса - посмотри в свой код. В процедуре loop() первые 5 строчек - это первое серво, а 5 строчек после //////// - второе, только там к именам переменных приставлена единичка. Возьми и скопируй эти 5 строчек третий раз, только вместо единички прибавь двоечку...
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,058
910
держи, добавил третье серво, могут быть опечатки - не проверял
C++:
#include <Servo.h>//Library for mark11

Servo myservo;
Servo myservo1;// constant for servocontrol
Servo myservo2;
const int analogInPin =A0;
const int analogInPin1 =A1;//connect to A0 pin
const int analogInPin2 =A2;
int sensorValue;
int sensorValue1;
int sensorValue2;
void setup(){
myservo.attach(9);
myservo1.attach(10);
myservo2.attach(11);
Serial.begin(9600);
}
void loop(){
sensorValue=analogRead(analogInPin);
sensorValue=map(sensorValue,0,1023,0,255);
myservo.write(sensorValue);
Serial.println(analogInPin);
delay(2);
///////////////////
sensorValue1=analogRead(analogInPin1);
sensorValue1=map(sensorValue1,0,1023,0,255);
myservo1.write(sensorValue1);
Serial.println(analogInPin1);
delay(2);
    ///////////////////
sensorValue2=analogRead(analogInPin2);
sensorValue2=map(sensorValue2,0,1023,0,255);
myservo2.write(sensorValue2);
Serial.println(analogInPin2);
delay(2);
}
 
  • Лойс +1
Реакции: Dima Bichyl

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,407
976
58
Марий-Эл
@Dima Bichyl, Плюнте в глаз тому, кто это сказал.
У Вас есть два варианта.
1. Попробовать то, что предложили.
2. Попросить написать правильно у того, кто это сказал. Раз он такой умный.
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Мне сказали ето для 3 серво неподходит он не правильный
Кто сказал? В чем неправильный? Если есть ошибки - говорите какие

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

У Вас есть два варианта.
1. Попробовать то, что предложили.
2. Попросить написать правильно у того, кто это сказал. Раз он такой умный.
Есть еще третий - написать самому. И это самый лучший
 

Dima Bichyl

✩✩✩✩✩✩✩
5 Сен 2020
5
0
Кто сказал? В чем неправильный? Если есть ошибки - говорите какие

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


Есть еще третий - написать самому. И это самый лучший
Я делаю манипулятор у меня есть моя прошивка но в разделе loop штото нетак


//NEURONET FOR MARK-11.(HELMET)
#include <Servo.h>//Library for mark11

Servo myservo;
Servo myservo1;Servo myservo2;// constant for servocontrol
const int analogInPin =A0;
const int analogInPin1 =A1const int analogInPin1 =A2;//connect to A0 pin
int sensorValue;
int sensorValue1;
int sensorValue2;
void setup(){
myservo.attach(9);
myservo1.attach(10);
myservo2.attach(11);
Serial.begin(9600);
}
void loop(){
sensorValue=analogRead(analogInPin);
sensorValue=map(sensorValue,0,1023,0,255);
myservo.write(sensorValue);
Serial.println(analogInPin);
delay(2);
///////////////////
sensorValue1=analogRead(analogInPin1);
sensorValue1=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue1);
Serial.println(analogInPin1);
delay(2);
sensorValue2=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue2);
Serial.println(analogInPinA2);
delay(2);
sensorValue3=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue3);
Serial.println(analogInPinA3);
delay(2);
}
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Дима, вы даже готовый код правильно скопировать не в состоянии?
Сравните что я дал вам вчера и что вы тут наворотили. У вас же все перепутано, все переменные названы неправильно, в ЛУПе, откуда-то взялось 4 серво! когда должно быть три

В общем, на мой взгляд это уже откровенная лень и полное отсутсвие желания думать.
 

Dima Bichyl

✩✩✩✩✩✩✩
5 Сен 2020
5
0
4 серво просто для управления основой сначало было 3 потомушто должен быть мотор мне указали так проще

А копировал я все правильно што нетак с копированием и никакой лени нет просто никто не хочет по нормальному объяснить самому приходицаца слепливать вы скинули код спасибо но мне говорили што там надо написать условия для myservo и srnsorvalue
Акак я незнаю
Я розобратся написал новую прошивку
Но сказали што в блок loop неправильный. Я НЕ ЛЕНЮСЬ я всё ето сам написал с 0 нужно только loop исправить
А писал я штобы убедица в правильности и спасибо вам што многое исправили
Но осталось loop сделать
//NEURONET FOR MARK-11.(HELMET)
#include <Servo.h>//Library for mark11

Servo myservo;
Servo myservo1;Servo myservo2;// constant for servocontrol
const int analogInPin =A0;
const int analogInPin1 =A1const int analogInPin1 =A2;//connect to A0 pin
int sensorValue;
int sensorValue1;
int sensorValue2;
void setup(){
myservo.attach(9);
myservo1.attach(10);
myservo2.attach(11);
Serial.begin(9600);
}
void loop(){
sensorValue=analogRead(analogInPin);
sensorValue=map(sensorValue,0,1023,0,255);
myservo.write(sensorValue);
Serial.println(analogInPin);
delay(2);
///////////////////
sensorValue1=analogRead(analogInPin1);
sensorValue1=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue1);
Serial.println(analogInPin1);
delay(2);
sensorValue2=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue2);
Serial.println(analogInPinA2);
delay(2);
sensorValue3=map(sensorValue1,0,1023,0,255);
myservo.write(sensorValue2);
Serial.println(analogInPinA2);
delay(2);
sensorValue3=map(sensorValue1,0,1023,0,255);
}
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
вы скинули код спасибо но мне говорили што там надо написать условия для myservo и srnsorvalue
ну вот пусть те кто это говорили - дальше вам и обьясняют.
Заодно и обьяснят, "шо не так " у вас в коде, где вы просто бездумно скопировали один и тот же кусок несколько раз.

Дима, вы даже код в сообщение правильно вставить не можете, как вам указать на ошибки, когда в коде строчки не пронумерованы?
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
Почему в этой строке 2 последних числа 0 и 255 ?
да разве только в этом дело? хочешь я тебе по этому коду наспор накидаю 10 таких же "Почему?"

  • почему все 4 серво управляются через один экземпляр myservo и зачем в программе описаны два других?
  • почему пины описаны с одним именем, а используются с другим?
  • зачем в программе аж пять операторов map() ?
  • почему во всех map(), кроме первого - неверное имя переменной?
  • почему на схеме три потенциометра - а в коде только два analogRead()?...
.... и так далее.

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

никто не хочет по нормальному объяснить
Дима, я правда пытался вам помочь. Но вы же не просто ноль в ардуино - ваш уровень "минус тыща".
Так писать программы - НЕЛЬЗЯ. Книжки читать не пробовали?
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,302
Москва
Всегда думаю, надеюсь, что человек, который начинает писать код хоть что то почитал и понял перед этим. Сидеть разбирать код не стал, увидел это и задал вопрос. А вообще надо учиться пошагово выполнять программу в голове и смотреть, что выйдет.