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

Luces estroboscopicas ARDUINO.

txt

//Luces estroboscopicas con variacion de tiempo

// COPIE ESTE PROGRAMA AL IDE DE ARDUINO

//salidas digitales 8 y 7 , entrada pin 2 para variar el tiempo

//descargar programa y plano electrico en www.elprofegarcia.com

int ledazul = 8;

int ledrojo = 7;

int entrada = 2;

int pulsador = 0;

int tiempo = 30;

void setup() {

pinMode(ledazul, OUTPUT);

pinMode(ledrojo, OUTPUT);

pinMode(entrada, INPUT);

void loop() {

digitalWrite(ledazul, HIGH); //prende led azul

delay(tiempo); // espera un tiempo de 200 o 30ms

digitalWrite(ledazul, LOW); //apaga el led azul

delay(tiempo); // espera un tiempo de 200 o 30ms

digitalWrite(ledazul, HIGH); //prende led azul


delay(tiempo); // espera un tiempo de 200 o 30ms

digitalWrite(ledazul, LOW); //apaga el led azul

delay(150); // espera un tiempo de 150ms

digitalWrite(ledrojo, HIGH); //prende led rojo

delay(tiempo); // espera un tiempo de 200 o 30 mili segundos

digitalWrite(ledrojo, LOW); //apaga el led rojo

delay(tiempo); // espera un tiempo de 200 o 30 mili segundos

digitalWrite(ledrojo, HIGH); //prende led rojo

delay(tiempo); // espera un tiempo de 200 o 30 mili segundos

digitalWrite(ledrojo, LOW); //apaga el led rojo

delay(150); // espera un tiempo de 150 mili segundos

pulsador = digitalRead(entrada); //lee el valor del pin 2 si esta en alto o bajo

if (pulsador == HIGH) { // si esta en alto el tiempo es de 30ms de lo contrario es 200ms

tiempo=30;

else {

tiempo=200;

giro extremo a extremo servo.txt

// Mover servo de extremo a extremo con parada en el centro

// Descargar el programa y plano en www.elprofegarcia.com

#include <Servo.h> // Incluye la libreria Servo


Servo servo1; // Crea el objeto servo1 con las caracteristicas de Servo

void setup()

servo1.attach(5,600,1500); // Asocia el servo1 al pin 3, define el min y max del ancho del
pulso

} // eso depende del fabricante del servo

void loop()

servo1.write(0); // Gira el servo a 0 grados

delay(700); // Espera 700 mili segundos a que el servo llegue a la posicion

servo1.write(90); // Gira el servo a 90 grados

delay(700);

servo1.write(180); //Gira el servo a 180 grados

delay(700);

Plano giro extremo extremo Arduino.jpg


giro servo direccion de carro.txt

// Mover servo de derecha a izquierda al oprimir el pulsador de cada lado

// el servo regresa automaticamente al centro (Direccion de Carro)

// Descargar el programa y plano en www.elprofegarcia.com

#include <Servo.h> // Incluye la libreria Servo

Servo servo1; // Crea el objeto servo1 con las caracteristicas de Servo

int pulsador_der = 1; // Fijamos el pulsador de la derecha en 0

int pulsador_izq = 1; // Fijamos el pulsador de la izquierda en 0

void setup()

servo1.attach(5,600,1500); // Asocia el servo1 al pin 3, define el min y max del ancho del
pulso

// eso depende del fabricante del servo

pinMode(2, INPUT); // Configuramos el pin 2 como entrada

pinMode(3, INPUT); // Configuramos el pin 3 como entrada

void loop()

pulsador_der = digitalRead(2); //lee el valor del pin 2 si esta en alto o bajo

pulsador_izq = digitalRead(3); //lee el valor del pin 3 si esta en alto o bajo

if (pulsador_der == LOW) { // si se oprimio el plsador de la derechao

servo1.write(180); // Gira el servo a 1800 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la posicion

if (pulsador_izq == LOW) { // si se oprimio el pulsador de la izquierda

servo1.write(0); // Gira el servo a 0 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la posicion

if(pulsador_izq == HIGH && pulsador_der == HIGH){ // Si se dejan de oprimir los dos


pulsadores

servo1.write(90); // Gira el servo a 90 grados

delay(15); // Espera 15 mili segundos a que el servo llegue a la posicion

Plano giro servo direccion carro Arduino.jpg


Arduino como ISP.txt

// ArduinoISP version 04m3

// Copyright (c) 2008-2011 Randall Bohn

// If you require a license, see

// http://www.opensource.org/licenses/bsd-license.php

//

// This sketch turns the Arduino into a AVRISP

// using the following arduino pins:

//

// pin name: not-mega: mega(1280 and 2560)

// slave reset: 10: 53


// MOSI: 11: 51

// MISO: 12: 50

// SCK: 13: 52

//

// Put an LED (with resistor) on the following pins:

// 9: Heartbeat - shows the programmer is running

// 8: Error - Lights up if something goes wrong (use red if that makes sense)

// 7: Programming - In communication with the slave

//

// 23 July 2011 Randall Bohn

// -Address Arduino issue 509 :: Portability of ArduinoISP

// http://code.google.com/p/arduino/issues/detail?id=509

//

// October 2010 by Randall Bohn

// - Write to EEPROM > 256 bytes

// - Better use of LEDs:

// -- Flash LED_PMODE on each flash commit

// -- Flash LED_PMODE while writing EEPROM (both give visual feedback of writing progress)

// - Light LED_ERR whenever we hit a STK_NOSYNC. Turn it off when back in sync.

// - Use pins_arduino.h (should also work on Arduino Mega)

//

// October 2009 by David A. Mellis

// - Added support for the read signature command

//

// February 2009 by Randall Bohn

// - Added support for writing to EEPROM (what took so long?)

// Windows users should consider WinAVR's avrdude instead of the

// avrdude included with Arduino software.


//

// January 2008 by Randall Bohn

// - Thanks to Amplificar for helping me with the STK500 protocol

// - The AVRISP/STK500 (mk I) protocol is used in the arduino bootloader

// - The SPI functions herein were developed for the AVR910_ARD programmer

// - More information at http://code.google.com/p/mega-isp

#include "pins_arduino.h"

#define RESET SS

Plano arduino isp bootloader.jpg

Atmel 328P.jpg
DIAGRAMA CONEXION ULTRASONICO ARDUINO.jpg

Sensor distancia Ultrasonido.txt

/*

Sensor de proximidad y al ser inferior a 10cm

envia un pulso de alarma por el pin 13

HC-SR04 conexiones:

VCC al arduino 5v

GND al arduino GND

Echo al Arduino pin 6

Trig al Arduino pin 7

Descargar planos de conexiones en http://elprofegarcia.com/

*/
#define Pecho 6

#define Ptrig 7

long duracion, distancia;

void setup() {

Serial.begin (9600); // inicializa el puerto seria a 9600 baudios

pinMode(Pecho, INPUT); // define el pin 6 como entrada (echo)

pinMode(Ptrig, OUTPUT); // define el pin 7 como salida (triger)

pinMode(13, 1); // Define el pin 13 como salida

void loop() {

digitalWrite(Ptrig, LOW);

delayMicroseconds(2);

digitalWrite(Ptrig, HIGH); // genera el pulso de triger por 10ms

delayMicroseconds(10);

digitalWrite(Ptrig, LOW);

duracion = pulseIn(Pecho, HIGH);

distancia = (duracion/2) / 29; // calcula la distancia en centimetros

if (distancia >= 500 || distancia <= 0){ // si la distancia es mayor a 500cm o menor a 0cm

Serial.println("---"); // no mide nada

else {

Serial.print(distancia); // envia el valor de la distancia por el puerto serial

Serial.println("cm"); // le coloca a la distancia los centimetros "cm"


digitalWrite(13, 0); // en bajo el pin 13

if (distancia <= 10 && distancia >= 1){

digitalWrite(13, 1); // en alto el pin 13 si la distancia es menor a 10cm

Serial.println("Alarma......."); // envia la palabra Alarma por el puerto serial

delay(400); // espera 400ms para que se logre ver la distancia en la consola

ARDUDROID elprofegarcia.txt

ARDUDROID elprofegarcia.txt/*

PROYECTO: ArduDroid

PROGRAMADOR: modificado por elprofegarcia.com original escrito por Hazim Bitar

FECHA: Ago 16, 2014

LICENCIA: Publica

Desconectar el modulo Bluetooth mientras carga este programa al Arduino, luego conecte:

ARDUINO BLUETOOTH

Pin 0 (RX) TXD

Pin 1 (Tx) RXD

5V VCC

GND GND

Descargar plano de conexiones en: http://elprofegarcia.com/?page_id=2

Descargar aplicacion Android en Play Store: ArduDroid (Hazim Bitar)

*/

#define CARACTER_INICIO_CMD '*'

#define CARACTER_FINAL_CMD '#'


#define CARACTER_DIV_CMD '|'

#define ESCRITURA_DIGITAL_CMD 10

#define ESCRITURA_ANALOGA_CMD 11

#define TEXTO_CMD 12

#define LECTURA_ARDUDROID_CMD 13

#define MAX_COMMAND 20

#define MIN_COMMAND 10

#define LONGITUD_ENTRADA_STRING 40

#define ESCRITURA_ANALOGICA_MAX 255

#define PIN_ALTO 3

#define PIN_BAJO 2

String inText;

void setup() {

Serial.begin(9600);

Serial.println("elprofegarcia.com");

Serial.flush();

void loop()

Serial.flush();

int ard_command = 0;

int pin_num = 0;

int pin_value = 0;

char get_char = ' '; //lee serial


// esperar a que los datos entren

if (Serial.available() < 1) return; // si no hay datos en el serial retornar al Loop().

// analizar entrada de indicador de inicio de comando

get_char = Serial.read();

if (get_char != CARACTER_INICIO_CMD) return; // si no hay indicación de inicio del sistema,


volver loop ().

// parse incoming command type

ard_command = Serial.parseInt(); // read the command

// analizar el tipo de comando entrante

pin_num = Serial.parseInt(); // leer el pin

pin_value = Serial.parseInt(); // leer el valor

// 1) OBTENER COMANDO DE TEXTO PARA ARDUDROID

if (ard_command == TEXTO_CMD){

inText =""; // borra variable para nueva entrada

while (Serial.available()) {

char c = Serial.read(); // recibe un byte de la memoria intermedia serie

delay(5);

if (c == CARACTER_FINAL_CMD) { // si la cadena completa ha sido leida

// add your code here

break;

else {

if (c != CARACTER_DIV_CMD) {

inText += c;
delay(5);

// 2) OBTENER DATOS DE digitalWrite ARDUDROID

if (ard_command == ESCRITURA_DIGITAL_CMD){

if (pin_value == PIN_BAJO) pin_value = LOW;

else if (pin_value == PIN_ALTO) pin_value = HIGH;

else return; // error en el valor de PIN. regresar.

set_digitalwrite( pin_num, pin_value); // Eliminar el comentario de esta función para


utilizarla

return; // regrese al inicio de loop()

// 3) GET analogWrite DATA FROM ARDUDROID

if (ard_command == ESCRITURA_ANALOGA_CMD) {

analogWrite( pin_num, pin_value );

// add your code here

return; // Done. return to loop();

// 4) Enviar datos a ARDUDROID

if (ard_command == LECTURA_ARDUDROID_CMD) {

// char send_to_android[] = " Coloca el texto aquí." ;

// Serial.println(send_to_android); // Ejemplo: Envío de texto

Serial.print(" Analogo 0 = ");


Serial.println(analogRead(A0)); // Ejemplo: Leer y enviar valor analógico del Pin de Arduino

return; // Listoe. regrese al loop();

// 2a) seleccionar el pin # solicitado para la acción digitalWrite

void set_digitalwrite(int pin_num, int pin_value)

switch (pin_num) {

case 13:

pinMode(13, OUTPUT);

digitalWrite(13, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 12:

pinMode(12, OUTPUT);

digitalWrite(12, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 11:

pinMode(11, OUTPUT);

digitalWrite(11, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 10:

pinMode(10, OUTPUT);

digitalWrite(10, pin_value);

// adicione su código aquí, para este número de pin del Arduino


break;

case 9:

pinMode(9, OUTPUT);

digitalWrite(9, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 8:

pinMode(8, OUTPUT);

digitalWrite(8, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 7:

pinMode(7, OUTPUT);

digitalWrite(7, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 6:

pinMode(6, OUTPUT);

digitalWrite(6, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 5:

pinMode(5, OUTPUT);

digitalWrite(5, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 4:

pinMode(4, OUTPUT);
digitalWrite(4, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 3:

pinMode(3, OUTPUT);

digitalWrite(3, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

case 2:

pinMode(2, OUTPUT);

digitalWrite(2, pin_value);

// adicione su código aquí, para este número de pin del Arduino

break;

// por defecto

// si nada más fue seleccionado, hacer el defecto (default)

// default es opcional

Plano conexion Arduino - Bluetooth.jpg


RobotReloj elprofegarcia.txt

/* RobotReloj

Modificado por elprofegarcia.com original de Johannes Heberlein 2014

v 1.02 ES

La librería “Time” la puede descargar en http://elprofegarcia.com/?page_id=2

o en http://playground.arduino.cc/Code/time y debe copiarla a al subdirectorio /libraries


dentro

del directorio donde tenga instalado Arduino

Conexiones entre Servos y Arduino:

Servo de elevacion -> Pin 2 del Arduino (cable Naranja del servo)

Servo izquierdo -> Pin 3 del Arduino (cable Naranja del servo)

Servo derecho -> Pin 4 del Arduino (cable Naranja del servo)

Los cables rojos de los Servos deben conectarse al Pin de 5V del Arduino

Los cables Marron de los Servos deben conectarse al Pin GND del Arduino
Primero debe calibrar los brazos para que varíen en Angulo de 90 grados exactos y de forma
cruzada entre el servo derecho e izquierdo.

Después de Calibrar, borre o marque como comentario la línea siguiente */

#define CALIBRACION

// En modo de calibración, ajuste el factor siguiente hasta que los servos se mueven
exactamente 90 grados

#define SERVOFAKTOR 640 //#define SERVOFAKTOR 620

/* En modo de calibración, ajuste los valores NULL para que los brazos de los servos esten en
todo momento paralelos Ya sea al eje X o Y */

#define SERVOLEFTNULL 1800 //#define SERVOLEFTNULL 1900

#define SERVORIGHTNULL 1000 //#define SERVORIGHTNULL 984

#define SERVOPINELEVADOR 2 // Pin 2 conexión del servo elevador

#define SERVOPINIZQUIERDO 3 // Pin 3 conexión del servo izquierdo

#define SERVOPINDERECHA 4 // Pin 4 conexión del servo derecho

// definir posiciones del servo elevador

#define LIFT0 1080 // en la superficie de dibujo

#define LIFT1 925 // elevación entre escritura de numeros

#define LIFT2 825 //#define LIFT2 725 // yendo con el borrador

// velocidad de brazo elevador, un número mayor es más lento

#define VELOCIDADELEVADOR 1500

// longitud de los brazos

#define L1 35
#define L2 60 //#define L2 55.1

#define L3 13.2

// puntos de origen de servo izquierda y derecha

#define O1X 22

#define O1Y -25

#define O2X 47

#define O2Y -25

ArduBT.txt

int led13=13;

int estado=0;

void setup(){

Serial.begin(9600);

pinMode(led13,OUTPUT);

void loop(){

if(Serial.available()>0){

estado = Serial.read();

if (estado =='1'){

digitalWrite(led13,HIGH);

if(estado=='2'){

digitalWrite(led13,LOW);

}
luces navidad automaticas.txt

Luces Auto fantastico encendidas por la oscuridad

Por: http://elprofegarcia.com/

*/

int vel=100; // Velocidad de la secuencia

int valoroscuridad=200; // valor de la oscuridad

int valorfoto = 0; // valor de la fotorresistencia

void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

pinMode(5, OUTPUT);

pinMode(4, OUTPUT);

void loop() {
valorfoto = analogRead(A5); // lee el valor de la oscuridad

if (valorfoto>valoroscuridad){ // si hay oscuridad

digitalWrite(13, HIGH);

delay(vel);

digitalWrite(12, HIGH);

delay(vel);

digitalWrite(11, HIGH);

delay(vel);

digitalWrite(13, LOW);

digitalWrite(10, HIGH);

delay(vel);

digitalWrite(12, LOW);

digitalWrite(9, HIGH);

delay(vel);

digitalWrite(11, LOW);

digitalWrite(8, HIGH);

delay(vel);

digitalWrite(10, LOW);

digitalWrite(7, HIGH);

delay(vel);

digitalWrite(9, LOW);

digitalWrite(6, HIGH);

delay(vel);

digitalWrite(8, LOW);

digitalWrite(5, HIGH);

delay(vel);

digitalWrite(7, LOW);

digitalWrite(4, HIGH);
delay(vel);

digitalWrite(6, LOW);

delay(vel);

digitalWrite(5, LOW);

delay(vel);

digitalWrite(5, HIGH);

delay(vel);

digitalWrite(6, HIGH);

delay(vel);

digitalWrite(4, LOW);

digitalWrite(7, HIGH);

delay(vel);

digitalWrite(5, LOW);

digitalWrite(8, HIGH);

delay(vel);

digitalWrite(6, LOW);

digitalWrite(9, HIGH);

delay(vel);

digitalWrite(7, LOW);

digitalWrite(10, HIGH);

delay(vel);

digitalWrite(8, LOW);

digitalWrite(11, HIGH);

delay(vel);

digitalWrite(9, LOW);

digitalWrite(12, HIGH);

delay(vel);

digitalWrite(10, LOW);
digitalWrite(13, HIGH);

delay(vel);

digitalWrite(11, LOW);

delay(vel);

digitalWrite(12, LOW);

else{

digitalWrite(13, LOW);

luces navidad automaticas.txt

Luces Auto fantastico encendidas por la oscuridad

Por: http://elprofegarcia.com/

*/

int vel=100; // Velocidad de la secuencia

int valoroscuridad=200; // valor de la oscuridad

int valorfoto = 0; // valor de la fotorresistencia

void setup() {

pinMode(13, OUTPUT);

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);
pinMode(8, OUTPUT);

pinMode(7, OUTPUT);

pinMode(6, OUTPUT);

pinMode(5, OUTPUT);

pinMode(4, OUTPUT);

void loop() {

valorfoto = analogRead(A5); // lee el valor de la oscuridad

if (valorfoto>valoroscuridad){ // si hay oscuridad

digitalWrite(13, HIGH);

delay(vel);

digitalWrite(12, HIGH);

delay(vel);

digitalWrite(11, HIGH);

delay(vel);

digitalWrite(13, LOW);

digitalWrite(10, HIGH);

delay(vel);

digitalWrite(12, LOW);

digitalWrite(9, HIGH);

delay(vel);

digitalWrite(11, LOW);

digitalWrite(8, HIGH);

delay(vel);

digitalWrite(10, LOW);
digitalWrite(7, HIGH);

delay(vel);

digitalWrite(9, LOW);

digitalWrite(6, HIGH);

delay(vel);

digitalWrite(8, LOW);

digitalWrite(5, HIGH);

delay(vel);

digitalWrite(7, LOW);

digitalWrite(4, HIGH);

delay(vel);

digitalWrite(6, LOW);

delay(vel);

digitalWrite(5, LOW);

delay(vel);

digitalWrite(5, HIGH);

delay(vel);

digitalWrite(6, HIGH);

delay(vel);

digitalWrite(4, LOW);

digitalWrite(7, HIGH);

delay(vel);

digitalWrite(5, LOW);

digitalWrite(8, HIGH);

delay(vel);

digitalWrite(6, LOW);

digitalWrite(9, HIGH);

delay(vel);
digitalWrite(7, LOW);

digitalWrite(10, HIGH);

delay(vel);

digitalWrite(8, LOW);

digitalWrite(11, HIGH);

delay(vel);

digitalWrite(9, LOW);

digitalWrite(12, HIGH);

delay(vel);

digitalWrite(10, LOW);

digitalWrite(13, HIGH);

delay(vel);

digitalWrite(11, LOW);

delay(vel);

digitalWrite(12, LOW);

else{

digitalWrite(13, LOW);

Sensor de Luz.txt

Sensor de Luz con el robot Ardu5

By: http://elprofegarcia.com/

Planos para armar el Robot Ardu5: http://www.ardu5.com/

Tienda en Linea : http://dinastiatecnologica.com/

entrada digital por el Pin 8

Pin 10 activa el sensor colocando 5V


Indicador de Luz con los pines 9,11,12 y 13.

*/

void setup() {

pinMode(8,INPUT); // Puerto 8 como entrada

pinMode(9, OUTPUT); // Puertos de 9 a 13 como salidas

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

pinMode(13,OUTPUT);

void loop() {

digitalWrite(10, HIGH); // Pone los 5V a la fotorresistencia

if(digitalRead(8) == 1){ // Si detecta ausencia de Luz, enciende los LED

digitalWrite(9,HIGH);

digitalWrite(11,HIGH);

digitalWrite(12,HIGH);

digitalWrite(13,HIGH);

digitalWrite(9,LOW); //Si hay Luz apaga los LED

digitalWrite(11,LOW);

digitalWrite(12,LOW);

digitalWrite(13,LOW);

https://github.com/PaulStoffregen/FreqCount

Contador de RPM.txt

// Contador de RPM by: http://elprofegarcia.com

// Conexion de la entrada de la interrupcion 0 por el PIN 2

// Configurar el monitor serial a 57600 Baudios para visualizar los RPM

// Tienda para comprar Materiales http://dinastiatecnologica.com


volatile int contador = 0; // Variable entera que se almacena en la RAM del Micro

void setup() {

Serial.begin(57600);

attachInterrupt(0,interrupcion0,RISING); // Interrupcion 0 (pin2)

} // LOW, CHANGE, RISING, FALLING

void loop() {

delay(999); // retardo de casi 1 segundo

Serial.print(contador*30); // Como son dos interrupciones por vuelta (contador * (60/2))

Serial.println(" RPM"); // El numero 2 depende del numero aspas de la helise del motor en
prueba

contador = 0;

void interrupcion0() // Funcion que se ejecuta durante cada interrupion

contador++; // Se incrementa en uno el contador

Вам также может понравиться