Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Posted by
7 Comments
jun 04,
2015
03/10/2016 18:42
2 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Este mdulo tiene acceso a todos los pines del max485 y tiene todos
los componentes adicionales para su correcto funcionamiento. Los
pines A B se pueden conectar tambin desde la bornera
Las salidas A y B son por donde se envan los datos, B es la negacin
de A, se envan los mismos datos pero en la lnea B estn negados,
de esta forma se pueden restar ambas seales y eliminar el ruido y
quedarnos solo con la seal de datos. El encargado de esta
transmisin diferencial es el max485.
Vindolo desde el microcontrolador o Arduino, la comunicacin se
trabaja como una comunicacin serial, trabajamos con los pines RX y
TX; y dependiendo del tipo de conexin se puede usar un pin ms
para especificar si estamos enviando o recibiendo datos.
3 de 19
S/. 470,00
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
S/. 30,00
Rodamiento polimrico
para gua de 8mm de
dimetro
S/. 15,00
4 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
{
Serial.begin(9600);
}
Cristal oscilador de
16 MHz de
frecuencia. Utilizado
en Arduino Uno,...
S/. 2,00
void loop()
{
int lectura = analogRead(0);//leemos el valor del potenc
imetro (de 0 a 1023)
byte angulo= map(lectura, 0, 1023, 0, 180);
// escal
amos la lectura a un valor de ngulo (entre 0 y 180)
Serial.write(angulo); //enviamos el ngulo correspondien
te
delay(50);
}
Servo myservo;
void setup()
{
Serial.begin(9600);
myservo.attach(9); // asignamos el pin 9 para el servo.
}
void loop()
{
El mdulo Relay te
permite controlar el
encendido/apagado
de equipos de...
S/. 6,00
Sensor capacitivo te
permite detectar
objetos metlicos y
no metlicos...
if (Serial.available()) {
int angulo = Serial.read(); //Leemos el dato recibido
if(angulo<=180) //verificamos que sea un valor en el r
ango del servo
{
myservo.write(angulo); //movemos el servomotor al n
gulo correspondiente.
}
}
}
5 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
S/. 40,00
6 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
03/10/2016 18:42
7 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
#include <Servo.h>
Servo myservo;
void setup()
{
Serial.begin(9600);
myservo.attach(9); // asignamos el pin 9 para el servo.
}
void loop()
{
if(Serial.available()>0)
{
if(Serial.read()=='I') //Si recibimos el inicio de tra
ma
{
char funcion=Serial.read(); //leemos el carcter de
funcin
//---Si el carcter de funcin es una S entonces la
trama es para mover el motor----------if(funcion=='S')
{
int angulo=Serial.parseInt(); //recibimos el n
gulo
if(Serial.read()=='F') //Si el fin de trama es
el correcto
{
if(angulo<=180) //verificamos que sea un valo
r en el rango del servo
{
myservo.write(angulo); //movemos el servom
otor al ngulo correspondiente.
}
}
}
//---Si el carcter de funcin es L entonces el ma
estro est solicitando una lectura del sensor
else if(funcion=='L')
{
if(Serial.read()=='F') //Si el fin de trama es e
l correcto
{
int lectura = analogRead(0); //realizamos la
lectura del sensor
//----enviamos la respuesta----Serial.print("i"); //inicio de trama
Serial.print(lectura); //valor del sensor
Serial.print("f"); //fin de trama
//-----------------
03/10/2016 18:42
8 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
}
}
}
}
delay(10);
}
03/10/2016 18:42
9 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
03/10/2016 18:42
10 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Cdigo de Esclavo:
#include <Servo.h>
Servo myservo; // creamos el objeto servo
const int EnTxPin = 2;
void setup()
{
03/10/2016 18:42
11 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Serial.begin(9600);
myservo.attach(9); // asignamos el pin 9 para el servo.
pinMode(EnTxPin, OUTPUT);
digitalWrite(EnTxPin, LOW); //RS485 como receptor
}
void loop()
{
if(Serial.available())
{
if(Serial.read()=='I') //Si recibimos el inicio de tra
ma
{
char funcion=Serial.read();//leemos el carcter de f
uncin
//---Si el carcter de funcin es una S entonces la
trama es para mover el motor----------if(funcion=='S')
{
int angulo=Serial.parseInt(); //recibimos el n
gulo
if(Serial.read()=='F') //Si el fin de trama es
el correcto
{
if(angulo<=180) //verificamos que sea un valo
r en el rango del servo
{
myservo.write(angulo); //movemos el servom
otor al ngulo correspondiente.
}
}
}
//---Si el carcter de funcin es L entonces el ma
estro est solicitando una lectura del sensor--else if(funcion=='L')
{
if(Serial.read()=='F') //Si el fin de trama es e
l correcto
{
int lectura = analogRead(0); //realizamos l
a lectura del sensor
digitalWrite(EnTxPin, HIGH); //rs485 como tr
ansmisor
Serial.print("i"); //inicio de trama
Serial.print(lectura); //valor del sensor
Serial.print("f"); //fin de trama
Serial.flush(); //Esperamos hasta que se env
en los datos
03/10/2016 18:42
12 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
03/10/2016 18:42
13 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
03/10/2016 18:42
14 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
#include <Servo.h>
03/10/2016 18:42
15 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
03/10/2016 18:42
16 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Tags:
130
Compartir
03/10/2016 18:42
17 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Diego
jul 14, 2016
Hola enhorabuena por el aporte de informacin. Quera
hacerle una pregunta sobre un proyecto en cuestin:1Quera controlar 3 motores brushless con un maestro y un
esclavo con comunicacin rs485. 2-En el maestro llevara
tres potencimetros para cada uno de los motores. 3Segn el valor se los potencimetros tendra mayo o
menor velocidad de los motores, cada uno de ellos
gobernados independientemente con cada potencimetro.
4- Llevara algn sensor en el esclavo adems de las
conexiones de los motores. 5-Tambin la posibilidad de
activar desde el maestro tres salidas en el esclavo.Es
decir, los valores que tenga en las entradas del maestro se
escriben en las salidas del esclavo.Gracias de antemano
Enhorabuena por vuestra web Un saludo Diego
Naylamp
jul 15, 2016
Hola diego, segn lo que explicas necesitas
una comunicacin maestro esclavo
bidireccional, puedes usar una comunicacin
full dplex si solo van a ser dos arduinos de
esta forma trabajas como si fuese una
comunicacin serial simple entre arduinos
(como en el ejemplo 2). Tambin puedes usar
una comunicacin half dplex como en los
ejemplos 3 y 4. Saludos.
roberto
sep 5, 2016
A mi me dejaron algo parecido,
pero tengo que disear mi propio
protocolo de comunicacion no se
si me darias algun consejo? te lo
agradeceria mucho
Alejandro
jul 19, 2016
Interesante artculo! Estoy en un proyecto similar al que
propone Diego, solo que en mi caso se trata de un
maestro y dos esclavos para controlar algunos motores de
paso, un servomotor y un sensor magntico. Me gustara
03/10/2016 18:42
18 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Naylamp
jul 20, 2016
Alejandro, si en tu proyecto necesitas trabajar
con dispositivos industriales o piensas a futuro
agregar ms dispositivos al mismo bus es
mejor trabajar con un protocolo estndar como
el Modbus, de lo contrario puedes trabajar con
tu propio protocolo.
Rodrick Diaz
ago 5, 2016
Que buen tutorial, Gracias por compartir. Tengo una
inquietud, implemente el ejemplo nmero 3 que se detalla
en artculo, y quise modificar solo para pedir la lectura del
sensor y me funciona, el detalle es cuando quise pedir el
dato del senor cada X tiempo, no logro hacer que funcione
alguna idea. Gracias, Saludos
Naylamp
sep 2, 2016
Hola Rodrick, Te debera funcionar as la
transmisin sea cada X tiempo, verifica que
EnTxPin est habilitndose y deshabilitndose
en el momento correcto. Las modificaciones
de tiempo solo deben ser en el programa del
maestro. El esclavo debe de responder tan
pronto le solicite el Maestro, sin Ningn
retraso.
* Name:
* E-mail:
(Not
Published)
03/10/2016 18:42
19 de 19
http://www.naylampmechatronics.com/blog/37_Comunicacin-RS485...
Website:
(Site url
withhttp://)
* Comment:
Submit
Naylamp Mechatronics,
Trujillo Per
Llmanos ahora:
997646858
Email:
03/10/2016 18:42