hola, que tal. Estoy desarrollando 2 codigos para un brazo robotico que e armado, los códigos funcionan para dos Arduino Uno, uno funciona como maestro y el otro como esclavo. mi problema es que el código que hice no me funciona muy bien y quería saber si ustedes lo podrían ayudarme y poder decirme la solución del problema. no tengo mucho conocimiento en esto ya que lo que sobre programar lo aprendo de tutoriales de youtube.
#include <Ultrasonic.h>.
#include <Servo.h>.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);// RX,TX
Servo myServo;
Ultrasonic ultrasonic(7,6);
int x;
void setup() {
mySerial.begin(9600);
Serial.begin (9600); // inicializa el puerto seria a 9600 baudios
myServo.attach(9);
}
void loop() {
for(int i=15;i<=165;i++){
myServo.write(i);
delay(30);
if (ultrasonic.Ranging(CM) <= 10 && ultrasonic.Ranging(CM) >= 1){
mySerial.write('x');
mySerial.write(ultrasonic.Ranging(CM));
mySerial.write('y');
mySerial.write(i);
Serial.print("x");
Serial.print(ultrasonic.Ranging(CM));
Serial.println("y");
Serial.println(i);
delay(30);
}
}
for(int i=165;i>15;i--){
myServo.write(i);
delay(30);
if (ultrasonic.Ranging(CM) <= 30 && ultrasonic.Ranging(CM) >= 1){
mySerial.write('x');
mySerial.write(ultrasonic.Ranging(CM));
mySerial.write('y');
mySerial.write(i);
Serial.print("x");
Serial.print(ultrasonic.Ranging(CM));
Serial.println("y");
Serial.println(i);
delay(30);
}
}
}
#include <Servo.h>.
int distancia = 0;
int angulo = 0;
char DATO;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
void setup() {
Serial.begin(9600);
servo1.attach(3);
servo2.attach(9);
servo3.attach(10);
servo4.attach(11);
}
void loop() {
if(Serial.available()> 0){
DATO = Serial.read();
if ( ! isdigit(DATO)) {
distancia=Serial.parseInt();
angulo=Serial.parseInt();
if(distancia <= 30 && distancia >= 1){
distancia=map(distancia,0,30,30,100);
switch (DATO) {
case 'x':
servo1.write(distancia);
case 'y':
servo2.write(angulo);
break;
}
}
}
}
}
el primer codigo es el que funciona como maestro y el segundo como esclavo