Materiales que ocupamos:
- 2 Arduinos
- 1 Led
- 4 cables
- Fuente de poder
Lo primero que vamos a hacer es conectar nuestros Arduinos de una manera muy simple:
Podemos ver que ocupamos los mismos puertos del Arduino master y del Arduino esclavo, conectamos la salida de 5v del master al esclavo, la salida GND del master al esclavo, y las entradas analógicas 4 y 5 del master al esclavo también a la 4 y 5.
Ahora colocamos un led en el pin 13 del Arduino esclavo, ya que nuestro programa tendrá como propósito apagar y prender un led.
Ahora programamos para el Arduino master:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
void setup() | |
{ | |
Wire.begin(); | |
} | |
int algo; | |
void loop() | |
{ | |
algo = HIGH; | |
Wire.beginTransmission(2); | |
Wire.send(13); | |
Wire.send(algo); | |
Wire.endTransmission(); | |
delay(500); | |
algo = LOW; | |
Wire.beginTransmission(2); | |
Wire.send(13); | |
Wire.send(algo); | |
Wire.endTransmission(); | |
delay(500); | |
} |
Y para el Arduino esclavo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
int pin; | |
int estado; | |
void setup() | |
{ | |
Wire.begin(2); | |
Wire.onReceive(receiveEvent); | |
} | |
void loop() | |
{ | |
} | |
void receiveEvent(int howMany) | |
{ | |
pin = Wire.receive(); | |
estado = Wire.receive(); | |
digitalWrite(pin, estado); | |
} |
Básicamente estamos diciendo en el programa master en el loop que escriba en el pin 13 del Arduino 2, y manda valores HIGH y LOW cada ciertos segundos para apagar y prender el led.
En el programa esclavo, se recibe el evento y se escribe en la salida digital el estado y el pin que se mando en el master.
Es muy fácil de hacer y bastante útil.
Aquí un vídeo y fotos de como me quedo a mi:
6 pts lab integrados
ResponderEliminarbuenas, en teoria se podria hacer con un atmega 328, es decir solo el micro y los componentes basicos para funcionar, (sin todo lo que tiene el arduino) me entiendes?
ResponderEliminarEs que es para mi robot, que quiero agregarle 2 manos o pinzas y me quede corto de pines, tengo el arduino uno y al mirar tu blog me dio esa idea, es casi lo mismo que tu haces pero el esclavo es solo el atmega y componentes discretos, pero en este caso controlaria unos servos. Es posible hacerlo? funcionara