Вы находитесь на странице: 1из 143

TUTOR

ING. DANIEL SALGADO

ARDUINO
MODULO INTERMEDIO
MEGATRONICA. QUITO, PRINCIPAL: AV. MARISCAL
SUCRE S10-401 Y FCO. SAN MIGUEL
TELF: 022614586 022847101 0999942422 0984127358
ING. DANIEL SALGADO

ARDUINO ES UN HARDWARE FLEXIBLE


PROGRAMABLE DISEADO PARA
ARTISTAS, DISEADORES, HOBBISTAS
ESTUDIANTES ENTRE OTROS
BASICAMENTE ESTA BASADO EN UN
MICROCONTROLADOR AVR
ARDUINO UNO ATMEGA328
ARDUINO MEGA ATMEGA2560

EL SOFTWARE ARDUINO
ENVIRONMENT ES GRATUITO Y PUEDE
SER DESCARGADO DESDE EL ARDUINO
WEB SITE www.arduino.cc

INICIANDO CON EL SOFTWARE


EN 6 PASOS

ARDUINO

1: SELECCIONAMOS LA BOARD

2: SELECCIONAMOS PUERTO SERIE EN EL QUE SE HA CONECTADO


EL ARDUINO

3: ABRIMOS UN NUEVO SKETCH (NUEVO PROGRAMA)


CLICK EN ARCHIVO - NUEVO

4: ESCRIBIMOS EL PROGRAMA O CONJUNTO DE INSTRUCCIONES EN EL EDITOR

5: VERIFICAMOS (COMPILAMOS EL PROGRAMA)

6: CARGAMOS EL PROGRAMA EN LA TARJETA ARDUINO

PARTES PRINCIPALES DEL ARDUINO

LEDS SOBRE DEL ARDUINO

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 1
LED INTERMITENTE

PROYECTO 1
LED INTERMITENTE
6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

void setup()
{
pinMode(2, OUTPUT);
}

void loop()
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}

PROYECTO 1
LED INTERMITENTE
6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 2
PULSADOR - LED

PROYECTO 2
PULSADOR - LED

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

void setup() {
pinMode(2, OUTPUT);
pinMode(3, INPUT);
}

void loop() {
if (digitalRead(3)==0)
{
digitalWrite(2, HIGH);
}
else
{
digitalWrite(2, LOW);
}
}

PROYECTO 2
PULSADOR - LED

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 3
PWM - LED

PROYECTO 3
PWM - LED

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

int led = 2;
int valor = 0;
int incremento = 1;

void setup() {
pinMode(led, OUTPUT);
}
void loop() {
analogWrite(led, valor);

valor = valor + incremento;


delay(20);

PROYECTO 3
PWM - LED

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 4
CONTROL DE VELOCIDAD
DE MOTOR DC - PWM

PROYECTO 4

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE VELOCIDAD DE MOTOR DC - PWM


int motor = 2;
int valor = 0;
void setup() {
pinMode(motor, OUTPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
void loop() {
if (digitalRead(3)==0){
valor++;
if(valor>=254){
valor=254;
}}

if (digitalRead(4)==0){
if (valor>1){
valor--;
}}
analogWrite(motor, valor);
delay(100);

PROYECTO 4

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE VELOCIDAD DE MOTOR DC - PWM

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 5
ENVIO DE DATOS
ARDUINO - PC

PROYECTO 5

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ENVIO DE DATOS ARDUINO - PC


void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("\nPRUEBA DE COMUNICACION SERIAL" );
Serial.print("\nARDUINO - PC ");
delay(2000);
}

PROYECTO 5

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ENVIO DE DATOS ARDUINO - PC

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 6
RECEPCION DE DATOS
PC - ARDUINO

PROYECTO 6

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

RECEPCION DE DATOS PC - ARDUINO


int dato;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}

void loop() {
while (Serial.available() > 0) {
dato = Serial.read();
if (dato == 'A') {
digitalWrite(13, HIGH);
}
if (dato == 'B') {
digitalWrite(13, LOW);
}
}
}

PROYECTO 6

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

RECEPCION DE DATOS PC - ARDUINO

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

EL ARDUINO MEGA
TIENE DISPONIBLES 4
TX-RX
PARA ESPECIFICAR QUE PUERTO SERIAL QUIERO
UTILIZAR:

Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);

Serial2.write(inByte);
Serial2.read();

// CANAL SERIAL 0 TX0 Y RX0


//CANAL SERIAL 1 TX1 Y RX1
//CANAL SERIAL 2 TX2 Y RX2
//CANAL SERIAL 3 TX3 Y RX3

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONVERSION ANALOGO DIGITAL

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 7
CONVERSION
ANALOGO DIGITAL

PROYECTO 7

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONVERSION A/D
int Valor = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Valor = analogRead(A0);

Serial.print("\n AD: ");


Serial.print(Valor);
}

delay(1500);

PROYECTO 7

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONVERSION A/D

PROYECTO 7

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONVERSION A/D

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

SENSOR ANALOGO DE
TEMPERATURA LM35

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 8
TERMOMETRO DIGITAL
CON LM35

PROYECTO 8

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

TERMOMETRO DIGITAL LM35


int Valor = 0;
int Temp=0;
void setup() {
Serial.begin(9600);
}
void loop() {
Valor = analogRead(A0);
Temp=Valor/2.05;
Serial.print("\n AD: ");
Serial.print(Valor);
Serial.print("\n TEMP: ");
Serial.print(Temp);
}

delay(500);

PROYECTO 8

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

TERMOMETRO DIGITAL LM35

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LDR

Un fotorresistor o resistencia dependiente de


la luz ( LDR ) o fotoclula es una resistencia
cuya resistencia disminuye con el aumento de
intensidad de luz incidente, para su conexin se
necesita realizar un divisor de voltaje.

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 9
LUZ NOCTURNA
AUTOMATICA

PROYECTO 9

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LUZ NOCTURNA AUTOMATICA


int Valor = 0;
int luz=200;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop() {
Valor = analogRead(A0);
Serial.print("\n AD: ");
Serial.print(Valor);
if (Valor>=500){
Serial.print("\nLUZ AUXILIAR ENCENDIDA");
digitalWrite(13,HIGH);
}else
{
digitalWrite(13,LOW);
}
delay(500);
}

PROYECTO 9

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LUZ NOCTURNA AUTOMATICA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

SENSOR ANALOGO DE SONIDO

1. AO: sensor analog output;


2. GND: ground;
3. VCC: power input, range: 3V-24V.
4. DO: Digital Output (comparator output)

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 10
CONTROL ON OFF POR
SONIDO

PROYECTO 10

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL ON OFF POR SONIDO


int Valor = 0;
int sonido=70;
int st=0;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop() {
Valor = analogRead(A0);
if (Valor>=sonido){
if (st==0){
Serial.print("\nLUZ ENCENDIDA");
digitalWrite(13,HIGH);
st=1;
delay(1000);
}}
delay(50);
Valor = analogRead(A0);
if (Valor>=sonido){
if (st==1){
Serial.print("\nLUZ APAGADA");
digitalWrite(13,LOW);
st=0;
delay(1000);
}}
Serial.print("\n AD: ");
Serial.print(Valor);
delay(50);
}

PROYECTO 10

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL ON OFF POR SONIDO

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LEDS EN BARRA

ARRAY DE LEDS 10 SEGMENTOS 25mA CADA LED

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 11
VUMETRO

PROYECTO 11

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VUMETRO
const int pin = A0;
const int leds = 8;
int x=0;
int ledLevel=0;
int valor=0;
int ledPins[] = {30, 31, 32, 33, 34, 35,36,37 }; // an array of pin numbers to which LEDs are
attached
void setup() {
for (x = 0; x < leds; x++) { //todos los pines son salida
pinMode(ledPins[x], OUTPUT);
}
}
void loop() {
valor = analogRead(pin);
ledLevel = map(valor, 0, 1023, 0, leds);

for (x = 0; x < leds; x++) {


if (x < ledLevel) {
digitalWrite(ledPins[x], HIGH);
}
else {
digitalWrite(ledPins[x], LOW);
}
}

PROYECTO 11

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VUMETRO

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROTOCOLO
1-WIRE
1-Wire es un protocolo de comunicaciones en serie
diseado por Dallas Semiconductor. Est basado en
un bus, un maestro y varios esclavos de una sola
lnea de datos en la que se alimentan. Por supuesto,
necesita una referencia a tierra comn a todos los
dispositivos.
ada dispositivo 1-Wire contiene un cdigo nico de
64 bits 'ROM', que consiste en un cdigo de 8-bit de
la familia, un nmero de serie de 48 bits, y un CRC
de 8 bits. La CRC se utiliza para verificar la
integridad de los datos.

PROTOCOLO
1-WIRE

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

DS1820
1-WIRE

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

DS1820
1-WIRE

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 12
CONTROL DE TEMP CON
DS18B20

PROYECTO 12

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE TEMPERATURA CON DS18B20


#include <OneWire.h>// libreria 1 wire
OneWire ds(10); // conectado pin 10
int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
void leer(){
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if ( !ds.search(addr)) { // busca dispositivos 1wire y almacena la idreccionde 8bytes en el arreglo addr,
devuelve un true o false
//Serial.print("No more addresses.\n");
ds.reset_search();
return;
}
ds.reset();// resetea el bus 1 wire para envio de comandos nuevos
ds.select(addr);// direccion unica para ds18b20 0x28
ds.write(0x44,1);
// start conversion, with parasite power on at the end
delay(1000);

// maybe 750ms is enough, maybe not

present = ds.reset();
ds.select(addr);
ds.write(0xBE);
// Read Scratchpad MEMORIA
for ( i = 0; i < 9; i++) {
// we need 9 bytes
data[i] = ds.read();
//Serial.print(data[i], HEX);
//Serial.print(" ");
}
LowByte = data[0];
HighByte = data[1];
TReading = (HighByte << 8) + LowByte;
SignBit = TReading & 0x8000; // test most sig bit

PROYECTO 12

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE TEMPERATURA CON DS18B20


if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
Tc_100 = (6 * TReading) + TReading / 4;

// multiply by (100 * 0.0625) or 6.25

Whole = Tc_100 / 100; // separate off the whole and fractional portions
Fract = Tc_100 % 100;

if (SignBit) // If its negative


{
Serial.print("-");
}
Serial.print(Whole);
Serial.print(".");
if (Fract < 10)
{
Serial.print("0");
}
Serial.print(Fract);
Serial.print("\n");

void setup(void) {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop(void) {
leer();
if (Whole>25)
{
digitalWrite(13,LOW);
}
else
{
digitalWrite(13,HIGH);
}
}

PROYECTO 12

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE TEMPERATURA CON DS18B20

SERVOMOTOR

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

SERVOMOTOR

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 13
CONTROL DE SERVOMOTOR

PROYECTO 13

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE SERVOMOTOR
int servo = 30;
int x=0;
void setup()
{
pinMode(servo,OUTPUT); //ENLAZO AL PIN 30
}
void loop()
{
for(x=0;x<15;x++){
digitalWrite(servo,HIGH);
delayMicroseconds(500);
digitalWrite(servo,LOW);
delay(20);
}
delay(2000);
for(x=0;x<15;x++){
digitalWrite(servo,HIGH);
delayMicroseconds(1500);
digitalWrite(servo,LOW);
delay(20);
}
delay(2000);
for(x=0;x<15;x++){
digitalWrite(servo,HIGH);
delayMicroseconds(2500);
digitalWrite(servo,LOW);
delay(20);
}
delay(2000);
}

PROYECTO 13

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE SERVOMOTOR

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 14
CONTROL DE POSICION CON
POTENCIOMETRO

PROYECTO 14

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE POSICION CON POTENCIOMETRO


#include <Servo.h>
Servo servo;
int potpin = 0;
int valor;
void setup()
{
servo.attach(30) //ENLAZO AL PIN 30
}
void loop()
{
valor = analogRead(potpin);
valor = map(valor, 0, 1023, 0, 179);
servo.write(valor);
delay(20); //ESPERA SERVO SE MUEVA
}

PROYECTO 14

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL DE POSICION CON POTENCIOMETRO

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PulseIn ()
Lee un pulso (alto o bajo) en un pin. Por ejemplo, si el
valor es ALTO , PulseIn () espera a que llegue el pulso
en ALTO y empieza a contar, a continuacin, espera a
que pase a estado BAJO y se detiene el
tiempo. Devuelve la longitud del impulso en
microsegundos. Se da por vencido y devuelve 0 si no
hay pulso en un plazo determinado a cabo.
Funciona en pulsos de 10 microsegundos a 3 minutos
de duracin.
Sintaxis
PulseIn (pin, valor)
PulseIn (pin, valor, tiempo de espera)

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

HC-SR04

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

HC-SR04

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

HC-SR04

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

APLICACIONES

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 15
LECTURA DE DISTANCIA CON
SENSOR HC-SR04

PROYECTO 15

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LECTURA DE DISTANCIA CON SENSOR HC-SR04


#define echoPin 37 // Echo Pin
#define trigPin 38 // Trigger Pin
#define LEDPin 13 // Onboard LED
int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}
void loop() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);

PROYECTO 15

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LECTURA DE DISTANCIA CON SENSOR HC-SR04


//Calcula la distancia (in cm) basado en la velocidad del
sonido.
distance = duration/58.2;
if (distance >= maximumRange || distance <=
minimumRange){
Serial.println("-1");
digitalWrite(LEDPin, HIGH);
}
else {
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
delay(50);
}

PROYECTO 15

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LECTURA DE DISTANCIA CON SENSOR HC-SR04

Visualizador LCD 16X2

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

Caracteres alfanumericos

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 16
VISUALIZADOR LCD

PROYECTO 16

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VISUALIZADOR LCD
#include <LiquidCrystal.h>
// PINES
RS,E,D4,D5,D6,D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); //INICIALIZA LCD 16X2
}
void loop() {
lcd.setCursor(0, 0);//COLUMNA1,FILA1
lcd.print("MEGATRONICA");
lcd.setCursor(0, 1);//COLUMNA1,FILA 2
lcd.print(millis()/1000);// IMPRIME EL NUMERO DE SEGUNDOS TRANSCURRIDO
delay(500);
lcd.noDisplay(); // APAGA LCD
delay(500);
lcd.display();
delay(500);
}

PROYECTO 16

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VISUALIZADOR LCD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 17
VISUALIZACION DE DATOS
SERIALES

PROYECTO 17

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VISUALIZACION DE DATOS SERIALES


#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
if (Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {
lcd.write(Serial.read());
}
}
}

PROYECTO 17

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

VISUALIZACION DE DATOS SERIALES

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 18
DISEANDO CARACTERES

PROYECTO 18

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

DISEANDO CARACTERES
// include the library code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte feliz[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b10001,
0b01110,
0b00000
};
byte triste[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b00000,
0b01110,
0b10001
};

PROYECTO 18

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

DISEANDO CARACTERES
void setup() {
lcd.createChar(1, feliz);
lcd.createChar(2, triste);
lcd.begin(16, 2);
lcd.print("MEGATRONICA");
}
void loop() {
lcd.setCursor(4, 1);
lcd.write(1);
delay(2000);
lcd.setCursor(4, 1);
lcd.write(2);
delay(2000);
}

PROYECTO 18

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

DISEANDO CARACTERES

SENSOR ACELEREMETRO
6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

MMA7361 (INCLINACION)
Acelermetro de 3 ejes MMA7361L, con sensibilidad
ajustable .Este acelermetro en board esta listo para usar y
se puede conectar directamente a 5V!. Integra a su vez filtro
pasa bajos de un polo en cada una de sus salidas..
PIN SL: Usando para activar o desactivar el acelermetro.
Typical Applications
3D Gaming: Tilt and Motion Sensing, Event Recorder
HDD MP3 Player: Freefall Detection
Laptop PC: Freefall Detection, Anti-Theft
Cell Phone: Image Stability, Text Scroll, Motion Dialing, ECompass
Pedometer: Motion Sensing
PDA: Text Scroll
Navigation and Dead Reckoning: E-Compass Tilt
Compensation
Robotics: Motion Sensing

SENSOR ACELEREMETRO
6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

MMA7361 (INCLINACION)

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 19
SENSOR DE INCLINACION 3
EJES X,Y,Z

PROYECTO 19

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

SENSOR DE INCLINACION 3 EJES X,Y,Z


int Valor1 = 0;
int Valor2 = 0;
int Valor3 = 0;
int dato=0;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
dato = Serial.read();
Valor1 = analogRead(A0);
Valor2 = analogRead(A1);
Valor3 = analogRead(A2);
Serial.print("\n X1: ");
Serial.print(Valor1);
Serial.print(" Y: ");
Serial.print(Valor2);
Serial.print(" Z: ");
Serial.print(Valor3);
}
}

PROYECTO 19

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

SENSOR DE INCLINACION 3 EJES X,Y,Z

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

MODULO BLUETOOTH
El modulo BlueTooth HC-06 utiliza el protocolo UART RS 232 serial.
Es ideal para aplicaciones inalmbricas, fcil de implementar con
PC, microcontrolador o mdulos Arduinos.
La tarjeta incluye un adaptador con 4 pines de fcil acceso para uso
en protoboard.
Los pines de la board correspondientes son:
VCC
GND
RX
TX
Adems posee un regulador interno que permite su alimentacin de
3.6 a 6V.
Caractersticas
Compatible con el protocolo Bluetooth V2.0.
Voltaje de alimentacin: 3.3VDC 6VDC.
Voltaje de operacin: 3.3VDC.
Baud rate ajustable: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200.
Tamao: 1.73 in x 0.63 in x 0.28 in (4.4 cm x 1.6 cm x 0.7 cm)
Corriente de operacin: < 40 mA
Corriente modo sleep: < 1mA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

MODULO BLUETOOTH

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 20
CONTROL INALAMBRICA POR
BLUETOOTH

PROYECTO 20

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL INALAMBRICO POR BLUETOOTH


int led=13;
int dato;
int x=0;
int servo=30;
void setup() {
pinMode(servo,OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
dato = Serial.read();
if (dato == 'A') {
digitalWrite(13, HIGH);
}
if (dato == 'B') {
digitalWrite(13, LOW);
}

PROYECTO 20

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL INALAMBRICO POR BLUETOOTH


/ if (dato == '1') {
for(x=0;x<15;x++){
digitalWrite(servo,HIGH);
delayMicroseconds(500);
digitalWrite(servo,LOW);
delay(20);
}
}
if (dato == '2') {
for(x=0;x<15;x++){
digitalWrite(servo,HIGH);
delayMicroseconds(2500);
digitalWrite(servo,LOW);
delay(20);
}
}
}

PROYECTO 20

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL INALAMBRICO POR BLUETOOTH

PROYECTO 20

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL INALAMBRICO POR BLUETOOTH

PROYECTO 20

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL INALAMBRICO POR BLUETOOTH

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 21
LECTURA DE 3 SENSORES AD Y
RECEPCION CON ANDROID
POR BLUETOOTH

PROYECTO 21

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

BLUETOOTH-ANDROID-3AD
int Valor1 = 0;
int Valor2 = 0;
int Valor3 = 0;
int dato=0;
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
while (Serial.available() > 0) {
dato = Serial.read();
if (dato == 'A') {
digitalWrite(13,HIGH);
}
Valor1 = analogRead(A0);
Valor2 = analogRead(A1);
Valor3 = analogRead(A2);
Serial.print("\n AD1: ");
Serial.print(Valor1);
Serial.print(" AD2: ");
Serial.print(Valor2);
Serial.print(" AD3: ");
Serial.print(Valor3);
}
}

PROYECTO 21

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

BLUETOOTH-ANDROID-3AD

PROYECTO 21

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

BLUETOOTH-ANDROID-3AD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

GSM SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

GSM SHIELD
Un mdem GSM es un tipo especializado de
mdem, que acepta una tarjeta SIM, y opera a
travs de una suscripcin a un operador de
telefona mvil, como un telfono mvil. Desde
la perspectiva del operador mvil, un mdem
GSM se ve como un telfono mvil.
Cuando un mdem GSM se conecta a un
ordenador, lo que permite que el equipo utilice
el mdem GSM para comunicarse a travs de la
red mvil. Si bien estos mdems GSM se
utilizan con mayor frecuencia para
proporcionar conectividad a Internet mvil,
muchos de ellos tambin se puede utilizar para
enviar y recibir mensajes SMS y MMS.

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

GSM SHIELD
The GPRS Shield is based on SIM900 module from SIMCOM and
compatible with Arduino and its clones. The GPRS Shield provides you a
way to communicate using the GSM cell phone network. The shield
allows you to achieve SMS, MMS, GPRS and Audio via UART by sending
AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands).
The shield also has the 12 GPIOs, 2 PWMs and an ADC of the SIM900
module(They are all 2V8 logic) present onboard.
Features
1.Quad-Band 850 / 900/ 1800 / 1900 MHz - would work on GSM networks
in all countries across the world.
2.GPRS multi-slot class 10/8
3.GPRS mobile station class B
7.Control via AT commands - Standard Commands: GSM 07.07 & 07.05 |
Enhanced Commands: SIMCOM AT Commands.
8.Short Message Service - so that you can send small amounts of data
over the network (ASCII or raw hexadecimal).
9.Embedded TCP/UDP stack - allows you to upload data to a web server.
10.RTC supported.
12.Speaker and Headphone jacks

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

GSM SHIELD

PROYECTO 22

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ENVIO
DE NOTIFICACION GSM
char num[11]="0999942422";

char msj[100]="6-ARDUINO - PRUEBA DE ENVIO DE MENSAJE ESCRITO - MEGATRONICA";


int x=0;
void enviar_msj(){
digitalWrite(13,HIGH);
Serial.print("AT");
delay(100);
Serial.write(13);
Serial.write(10);
delay(200);
Serial.print("AT+CMGF=1");
Serial.write(13);
Serial.write(10);
delay(100);
Serial.print("AT+CMGS=");
Serial.write(34);
delay(100);
Serial.print(num);
delay(100);
Serial.write(34);
delay(100);
Serial.write(13);
Serial.write(10);
delay(100);
Serial.print(msj);
delay(100);
Serial.write(13);
Serial.write(10);
delay(100);
Serial.write(26);
digitalWrite(13,LOW);
}

PROYECTO 22

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ENVIO DE NOTIFICACION GSM


void setup() {
Serial.begin(115200);
pinMode(13,OUTPUT);
}
void loop() {
delay(15000);
enviar_msj();
delay(20000);
}

PROYECTO 23

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LLAMADA DE EMERGENCIA GSM


void llamada_gsm(){
digitalWrite(13,HIGH);
Serial.print("AT");
Serial.write(13);
Serial.write(10);
delay(200);
Serial.print("ATD0998784798;");
delay(100);
Serial.write(13);
Serial.write(10);
delay(20000);
Serial.print("ATH");
Serial.write(13);
Serial.write(10);
digitalWrite(13,LOW);
}
void setup() {
Serial.begin(115200);
pinMode(13,OUTPUT);
}
void loop() {
delay(15000);
llamada_gsm();
delay(20000);
}

RFID Identificacion por


radio frecuencia

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

RFID (siglas de Radio Frequency IDentification, en


espaol identificacin por radiofrecuencia) es un
sistema de almacenamiento y recuperacin de
datos remoto que usa dispositivos
denominados etiquetas, tarjetas, transportadores o
tags RFID. El propsito fundamental de la
tecnologa RFID es transmitir la identidad de un
objeto (similar a un nmero de serie nico)
mediante ondas de radio. Las tecnologas RFID se
agrupan dentro de las denominadas Auto
ID (automatic identification, o identificacin

RFID Identificacion por


radio frecuencia

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

RFID Identificacion por


radio frecuencia

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

PROYECTO 24

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LECTURA DE CODIGOS RFID CON RDM4600


int dato;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
dato= Serial.read();
Serial.print(dato);

}
delay(500);

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

La Arduino Ethernet Shield permite conectar


fcilmente su Arduino a Internet. Esto se
utiliza para enviar y recibir datos desde
cualquier lugar del mundo con una conexin a
Internet. Usted puede usarlo para hacer cosas
divertidas, como los robots de control de
forma remota desde un sitio web, o sistemas
domoticos a distancia.

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

El ETHERNET shield esta basado en el chip


W51000, que tiene un buffer interno de
16K. Tiene una velocidad de conexin de
hasta 10/100Mb.
Para su utilizacin se requiere la librera
ethernet.

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

CONOCIENDO UNA
IP DISPONIBLE

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

VENTANA DE COMANDOS

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

DIGITAMOS IPCONFIG Y PRESIONAMOS ENTER , PARA


CONOCER LA MASCARA DE SUBRED Y DIRECCIONES IP
OCUPADAS

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

PODEMOS CONOCER TAMBIEN LA DIRECCION IP DE UNA


PAGINA WEB
EJ: WWW.WIKIHOW.COM

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

HACEMOS PING A UNA DIRECCION IP PARA CONOCER EL


ESTADO, Y ESPERAMOS SU RESPUESTA. SI RESPONDE,
ESA IP ESTA CONECTADA SI NO RESPONDE ESA IP ESTA
DESOCUPADA

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

ETHERNET SHIELD

PODEMOS CONOCER TAMBIEN LA DIRECCION IP DE UNA


PAGINA WEB
EJ: WWW.WIKIHOW.COM

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

LENGUAJE HTML

Es usado para describir la estructura y el contenido en


forma de texto, as como para complementar el texto con
objetos tales como imgenes. HTML se escribe en forma de
etiquetas, rodeadas por corchetes angulares (<,>). HTML
tambin puede describir, hasta un cierto punto, la
apariencia de un documento, y puede incluir un script (por
ejemplo JavaScript), el cual puede afectar el
comportamiento de navegadores web y otros procesadores
de HTML.

Detalle del comando

Abre

6: DESCARGAMOS EL SKETCH..<html>...
AL ARDUINO MEGA

Principio de Documento

Cierra
</html>

Encabezado y Ttulo

<head><title>....(titulo del archivo)....

</title></head>

Color de Fondo de Pgina

<body bgcolor="#RRVVAA">

----

Imagen de Fondo

<body background="XXX.gif (o jpg)">

----

Imagen Individual

<img src="YYY.gif (o jpg)">

----

Imgen (Ancho y Alto)

<img src=".." width="n" height="n">

-----

Espacio "libre"

<img src=".." hspace="n">

-----

Color del Texto (parcial)

<font color="#RRVVAA">

</font>

Tamao del Texto (parcial)

<font size="n">

</font>

Punto y a Parte

<br>

-----

Linea (s) en blanco

<p>

-----

"As you See"

<pre>

</pre>

Lnea Embebida

<hr="n">

-----

Negrita*Cursiva*Subray

<b> * <I> * <U>

</b> * </I> * </U>

Subndice * Superndice

<sub> * <sup>

</sub> * </sup>

Centrado*Izquierda*Derecha

<center>*<left>*<right>

</center>*</left>*</right>

Enlace "lejano"

<a href="http://...">

....</a>

Enlace "ab.html" en tu PC

<a href="ab.html">

....</a>

Enlace misma pgina

<a href="#pepe">

....</a>

Localiz.anterior

<a name="pepe">

....</a>

Enlace Correo

<a herf="mailto: dir.mail...">

...</a>

Arch.de Sonido

<bgsound src="xx.wav"> (o .mid)

-----

Desplazam. Marquesina

<marquee>(texto)

</marquee>

PROYECTO 26

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

WEB SERVER ETHERNET SHIELD

PROYECTO 26

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

WEB SERVER ETHERNET SHIELD

PROYECTO 26

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

WEB SERVER ETHERNET SHIELD

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS


// funciona con la configuracion del router de abrir puerto e ip
// y se puedan encender y apagar leds (Pines digitales del 2 al 9).
// Pines 10,11,12 y 13 los usa para comunicarse con la ethernet
#include <SPI.h>
#include <WString.h>
#include <Ethernet.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // direccion MAC de tu Ethernet
byte ip[] = {192, 168, 1, 3}; // ip que le pones dentro de tu red como fija y configurada en tu router
EthernetServer server(80); // 88 puerto por el accedemos al servidor. Normalmente seria la 80
int dig[ ] = {2,3,4,5,6,7,8,9}; // pines digitales a usar. No uso 0 y 1 que son de transmisin serie
// Tampoco uso el 10,11,12 y 13 ya que los uso para la ethernet
int digTotal = 8; // Numero de pines a usar
int vdig[] = {0,0,0,0,0,0,0,0}; // valores iniciales (Tantos como pines usemos)
int pin;
int x=0;
int nivel;
String cad = String(100);
void setup()
{
pinMode(5, OUTPUT);
Ethernet.begin(mac, ip); // inicio la Ethernet
server.begin();
// inicio el servidor
for (int i=0; i < digTotal; i++)
{
pinMode(dig[i], OUTPUT); // inicializo los pines digitales como salida
digitalWrite(dig[i],vdig[i]); // los pongo a nivel bajo LOW=0
}
}

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS


void loop()
{
cad = ""; // inicializo la cad donde almaceno los datos recibidos
EthernetClient cliente = server.available();
if (cliente)
{
while(cliente.connected())
{
if(cliente.available())
{
char c = cliente.read();
cad = cad + c;
//Serial.print(c);
if(c == '\n')
{
if (cad.lastIndexOf("dig") > -1) // si la variable cad contiene 'dig' hacer ...
{
pin = pinElegido(cad);// PIN DEL 2 AL 9
int posicionPin;
for (int i=0; i <digTotal; i++)
{
if (dig[i] == pin) // BUSCA POSICION
{
posicionPin = i;
break;
}
}
nivel = nivelElegido(cad);
vdig[posicionPin] = nivel;// ASIGNA HIGH O LOW
digitalWrite(pin, nivel); // activamos o desactivamos el pin elegido
} // ... hasta aqui 'dig'

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS


// Comienza la PROGRAMACION HTML
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println();
cliente.println("<head>");
cliente.println("<title>CONTROL WEB DE LEDS</title>");
cliente.println("</head>");
for (int i=0; i < digTotal; i++)
{
if (vdig[i]==1)
{
cliente.println("<font color='green'> ON </font>");
cliente.print("<form method=get><input type=hidden name=dig");
cliente.print(dig[i]);
cliente.print(" value=0><input type=submit value=OFF></form>");
}
if (vdig[i]==0)
{
cliente.println("<font color='grey'> OFF </font>");
// cliente.println("<td>");
cliente.print("<form method=get>");
cliente.print("<input type=hidden name=dig");
cliente.print(dig[i]);
cliente.print(" value=1>");
cliente.print("<input type=submit value=ON>");
cliente.print("</form>");
}
}
cliente.stop();
}
}
}
}
}

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS


////////////// FUNCIONES /////////////////7
// Funcion: Extrae el pin del array cad (contiene la lectura de lo que el cliente devuelve)
int pinElegido(String cad)
{
int pos_dig = cad.lastIndexOf("dig");
int pos_igual = cad.lastIndexOf("=");
char vpin1 = cad.charAt(pos_dig+3);
char vpin2 = cad.charAt(pos_dig+4);
if (vpin2 != '=')
{
vpin1 += vpin2;
}
int pinElegido = vpin1 - 48; //.toInt();
return pinElegido;
}
// Funcion: Extrae en nivel de la cadena cad
int nivelElegido(String cad)
{
int pos_igual = cad.lastIndexOf("=");
char v = cad.charAt(pos_igual+1) - 48;
if (v == 0) return 0;
if (v == 1) return 1;
}

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS

PROYECTO 27

6: DESCARGAMOS EL SKETCH AL ARDUINO MEGA

CONTROL WEB DE 8 LEDS