Inicio > General > RS232 usando MAX232N con arduino

RS232 usando MAX232N con arduino

0
Vote
miércoles, 18 de marzo de 2009 Dejar un comentario Ir a comentarios

Vamos a probar una conexion serie con db9 contra un pc usando la libreria softwareserial. Necesitaremos convertir los niveles logicos que nos proporciona arduino a niveles RS232 y para ello utilizaremos un MAX232N.

Como podemos ver en su datasheet, el conexionado es bastante sencillo.


max232n_b max232n_c


Basicamente: pin1 con (+) condensador (-) 1uF a pin3; pin4 con (+) condensador 1uF (-) a pin5; pin2 con (+) condensador 1uF (-) a tierra; pin6 con (-) condensador 1uF (+) a tierra; pin16 con (+) condensador 1uF (-) a tierra; pin16 tambien conectado a 5v; pin 15 a tierra; pin7 a RX en DB9 (su pin2); pin8 a TX en DB9 (su pin 3); pin9 a RX en arduino; pin10 a TX en arduino; pinGND del DB9 (su pin 5) a tierra tb.

Nos deberia de quedar algo asi:

max232n_arduino

Para hacer la prueba cargaremos el siguiente codigo al arduino. En vez de la libreria softwareserial que viene con arduino en el ejemplo utilizamos la libreria NewSoftSerial adaptada por David A. Mellis que posee varias mejoras y funcionalidades, pero la que viene por defecto funciona tambien perfectamente.

#include <NewSoftSerial.h>

NewSoftSerial mySerial(2, 3);

void setup()
{
Serial.begin(9600);
Serial.println(“Goodnight moon!”);

// set the data rate for the NewSoftSerial port
mySerial.begin(9600);
mySerial.println(“Hello, world?”);
}

void loop() // run over and over again
{

if (mySerial.available()) {
Serial.print((char)mySerial.read());
}
if (Serial.available()) {
mySerial.print((char)Serial.read());
}
}

En el ejemplo lo que hacemos es mandar primero una cadena de texto al serial del arduino y otra al nuevo serial creado contra el db9 (pc con minicom o hiperterminal por ejemplo) y a continuacion mandar caracteres desde un lado a otro de la conexion db9.

DataSheet: http://www.ti.com/lit/gpn/MAX232

Libreria: NewSoftSerial_latest.tar.gz

Categories: General Tags:
  1. Miguel
    miércoles, 12 de agosto de 2009 a las 09:40 | #1

    Muy buenas. He intentado esto mismo pero no me funciona, el pin Rx ha de ser siempre el 0 y el Tx el definido con NSS, es decir, si pongo NewSoftSerial mySerial(4, 5); he de situar el pin Tx en el 5 y el Rx en el 0 y me funciona bien y me llega el mensaje “HELLO WORLD”, si uso el 0 y 1 me llega el mensaje “GOODNIGHT MOON”, de cualquier otra forma no me funciona nada… ¿Esta mal la libreria?

    Saludos.

  2. LEANDRO
    jueves, 28 de julio de 2011 a las 17:05 | #2

    Hola, mira estoy con lo mismo, mire las conexiones tuyas y estan iguales, pero el max232n no me transmite nada. Yo no lo conecte al arduino, sino que primero pruebo mandar señal TTL (o, +5) a la entrada y leer la salida. Con la entrada al aire tengo -8,5v, con la salida a 0v 8,5v.Cuando pongo +5v no hace nada.Lo extraño es que sin entrada tire valores como si estuviera a +5v. Ya cambie 2 integrados por las dudas, pero no se que mas puede ser. Hay algun secreto o es asi de simple esto.Saludos

  1. Sin trackbacks aún.
*


1 + = cuatro