Objetivos de aprendizaje


Download 0.78 Mb.
bet4/5
Sana10.01.2023
Hajmi0.78 Mb.
#1086620
1   2   3   4   5
Bog'liq
P5 Protocolos de Comunicacion

Arduino #2
//Librerías
#include

//Definimos variables


#define servo 3
#define motor 9
#define ledRED 10
#define ledGREEN 11
String datos;
int inclinacion=1;
int angulo=0;
int velocidad=0;

Servo servoMotor;

void setup() {
/*Iniciamos la comunicación, definimos modo de salidas y
creamos la instancia del servo*/
Serial.begin(9600);
servoMotor.attach(servo);
pinMode(motor, OUTPUT);
pinMode(ledRED, OUTPUT);
pinMode(ledGREEN, OUTPUT);
}

void loop() {


/*leemos lo que se envíó por el
puerto serial desde el arduino 1*/
lectura();
servoMotor.write(angulo);
//Evaluamos condiciones
if(inclinacion==1){
digitalWrite(motor,LOW);
digitalWrite(ledGREEN,LOW);
digitalWrite(ledRED,HIGH);
velocidad=0;
}
else if(inclinacion==0){
if(velocidad<=255){
velocidad=velocidad+15;
}
else{
velocidad=255;
}
analogWrite(motor, velocidad);
digitalWrite(ledGREEN,HIGH);
digitalWrite(ledRED,LOW);
}
delay(100);
}

//Función para leer los datos enviados por serial


void lectura(){
while(Serial.available()){
delay(30);
if(Serial.available()>0){
char data = Serial.read();
datos+=data;
}
}
Serial.println(datos);
datos.trim();
if(datos.length()>=2){
if(datos.substring(0,1)=="P"){
angulo=datos.substring(1).toInt();
}
if(datos.substring(0,1)=="I"){
inclinacion=datos.substring(1).toInt();
}
}
datos="";
}

Comunicación I2C
Arduino #1
//Librería
#include
//definición de variables
#define pot A0
#define sensor 7
int angulo;
int inclinacion;
void setup() {
//Inicializamos la librería y la comunicación serial
Wire.begin();
Serial.begin(9600);
}
void loop() {
//Leemos los valores del potenciómetro y el sensor
angulo= map(analogRead(pot),0,1023,0,255);
inclinacion=digitalRead(sensor);
//Mostramos los valores leídos
Serial.println(angulo);
Serial.println(inclinacion);
//Empezamos la transmisión de datos del potenciómetro
Wire.beginTransmission(8);
Wire.write("P");
Wire.write(angulo);
//Terminamos la transmisión de datos
Wire.endTransmission();
delay(100);
//Iniciamos la comunicación para enviar datos de inclinación
Wire.beginTransmission(8);
Wire.write("I");
Wire.write(inclinacion);
//Finalizamos transmisión
Wire.endTransmission();
delay(100);
}

Download 0.78 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling