En varias ocasiones he hablado sobre los kits de Arduino, como con el que me inicie o con el que suelo recomendar. Es con este ultimo el que pasare a analizar en esta y en posteriores entradas.
El por qué de empezar con un kit es básicamente para la gente que no tiene pensado hacer nada concreto, es decir que si alguien quiere montarse un robot pues se comprara los componentes exactos y lo montara, lo mismo para cualquier otro montaje... sin embargo para el que no lo tiene claro o quiere empezar probando un poco de cada la mejor forma de hacerlo es mediante un kit ya que comprando solo eso tienes todo, o casi todo, lo necesario para empezar.
................................
Y el resto en el blog ya que el conversor de HTML a BBCODE da error con las galerías de imágenes y otras etiquetas y no tengo tiempo para realizarlo a mano :/
http://giltesa.com/2013/07/02/kit-de-ard...en-precio/
Según publique las entradas explicando los módulos las pondré por aquí también
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Kit de Arduino de iniciación: Modulo relé
Código: /*
Author: Alberto Gil Tesa
WebSite: giltesa.com/?p=14365
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un modulo de relé.
Lo activa y desactiva cada 2 segundos.
giltesa.com/wp-content/uploads/2013/07/dealextreme-ejemplo-relay.png
*/
// Se define una constante para el pin del rele:
#define pinRele 12
// Funcion principal que configura los pines:
void setup()
{
pinMode( pinRele , OUTPUT);
}
// Funcion que itera una y otra vez el codigo de su interior:
void loop()
{
digitalWrite( pinRele , !digitalRead(pinRele) ); // Cambia el estado del pin al estado contrario actual.
delay(2000); // Realiza una pausa.
}
Mañana modulo Led RGB
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Buen aporte, el modulo de RGB me interesa, estare atento a tu publicacion
Giltesa, ya que te has puesto con algunas cosillas de iniciación, qué te parece si creamos una sección en el blog donde recopilar estas cosillas¿? Tenía pensado ir haciendo yo alguna cosa del estilo también, ir comentando el código, etc.. pero para mediados de mes, cuando acabe los exámenes.
P.D.: Y esa "alfombrilla" ¿?
Teneis la wiki que quizas encaje mejor con esa idea. Y el blog se puede dejar para anunciar cosas generales si quereis, o temas concretos, pero info de este estilo creo que iria mejor en la wiki cuando este lista que no le falta mucho
La wiki, es cierto. Es que tenemos tantas cosas que ni me acordaba, xDD
jukillo escribió:Giltesa, ya que te has puesto con algunas cosillas de iniciación, qué te parece si creamos una sección en el blog donde recopilar estas cosillas¿? Tenía pensado ir haciendo yo alguna cosa del estilo también, ir comentando el código, etc.. pero para mediados de mes, cuando acabe los exámenes.
P.D.: Y esa "alfombrilla" ¿?
Es un mantel individual del ikea, es mejor que grabar la mesa rajada y agujereada xD
En cuanto a lo del blog todo el contenido tiene licencia CC BY-NC-SA 3.0 así que se puede copiar los artículos e imágenes (sin hotlink) y ponerlas por aquí, de hecho ya intento compartir las cosas interesantes
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
una pregunta giltesa, esos modulos reles me comentaron el otro dia que llevan ya el transistor, tb llevan octo??
Se puede conectar directamente la carga al rele y ya esta o como se deberia conectar?? asi??
Ergon escribió:una pregunta giltesa, esos modulos reles me comentaron el otro dia que llevan ya el transistor, tb llevan octo??
Se puede conectar directamente la carga al rele y ya esta o como se deberia conectar?? asi??
[img*]http://i43.tinypic.com/2z9fpy9.jpg[/img]
En principio es conectar y listo. Yo de electrónica no tengo mucha idea pero por error compre una vez uno con un octo de esos y lo único que note es que el comportamiento del relé cambiaba:
Mientras que un relé si el octo funciona cuando pones a HIGH/VCC su pin de "datos", y se pone a LOW cuando lo desconectas.
Con el modulo de rele que incluía el octo era: Cuando en el Arduino ponias HIGH el rele estaba en LOW, y cuando ponías el Arduino en LOW se ponía en HIGH... eso con el cable conectado, si no se ponía el cable el rele estaba siempre en LOW/apagado.
No sé si es ese su cometido o no pero yo es lo que note xD
PD:
Por cierto, termine quitandole el octo para que se comportara normal xD
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
La funcion de un octoacoplador es separar fisicamente circuitos o bloques. Con este componente tienes separacion galvanica y por tanto te sirve como medida de proteccion. Es bastante frecuente verlo en montajes con una parte de potencia y una electronica de control. Por ejemplo, podemos verlo en electronicas de control de motores PAP.
Kit de Arduino de iniciación: Modulo led RGB
Código: /*
Author: Alberto Gil Tesa
WebSite: giltesa.com/?p=14367
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un modulo de LED RGB.
Cambia el color cada 1 segundo entre 7 colores posibles.
giltesa.com/wp-content/uploads/2013/07/dealextreme-ejemplo-rgb.png
*/
#define ledRojo 9
#define ledVerde 10
#define ledAzul 11
#define pause 1000
void setup()
{
// Configura tres pines como salida, uno para cada pin del Led:
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledAzul, OUTPUT);
// Genera una semilla para crear numeros "aleatorios" a partir de una lectura del pin analogico:
randomSeed(analogRead(0));
}
void loop()
{
// Genera un numero aleatorio del 0 al 6, dependiendo del numero se
// enciende uno/unos leds a un brillo especifico para generar el color deseado:
int numAleatorio = random(7);
switch( numAleatorio )
{
// Rojo
case 0:
analogWrite(ledRojo, 204);
break;
// Verde:
case 1:
analogWrite(ledVerde, 255);
break;
// Azul:
case 2:
analogWrite(ledAzul, 255);
break;
// Amarillo:
case 3:
analogWrite(ledRojo, 160);
analogWrite(ledVerde, 255);
break;
// Cian:
case 4:
analogWrite(ledRojo, 168);
analogWrite(ledAzul, 255);
break;
// Magenta:
case 5:
analogWrite(ledVerde, 255);
analogWrite(ledAzul, 255);
break;
// Blanco:
case 6:
analogWrite(ledRojo, 100);
analogWrite(ledVerde, 255);
analogWrite(ledAzul, 255);
break;
}
// Realiza una pausa y apaga todos los Leds:
delay(pause);
analogWrite(ledRojo, 0);
analogWrite(ledVerde, 0);
analogWrite(ledAzul, 0);
}
Mañana pulsadores, resistencias y led controlador por PWM para encenderlo, apagarlo y ajustarle el brillo
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Kit de Arduino de iniciación: resistencias, leds y pulsadores
Código: /*
Author: Alberto Gil Tesa
WebSite: giltesa.com/?p=14371
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de los pulsadores y un led por PWM
El codigo permite cambiar el brillo y encender y apagar un led.
giltesa.com/wp-content/uploads/2013/07/dealextreme-ejemplo-button-led.png
*/
#define btnMenos 4
#define btnMas 2
#define btnOnOff 3
#define led 7
#define salto 2
boolean estadoLed = true;
byte brillo = 100;
void setup()
{
pinMode( btnMenos , INPUT );
pinMode( btnMas , INPUT );
pinMode( btnOnOff , INPUT );
pinMode( led , OUTPUT );
}
void loop()
{
// Baja el brillo:
if( digitalRead(btnMenos) && brillo > salto)
{
brillo = brillo - salto;
delay(20); // Retarda el cambio del brillo para que no pase del maximo al minimo demasiado deprisa
}
// Sube el brillo:
else if( digitalRead(btnMas) && brillo < 255-salto)
{
brillo = brillo + salto;
delay(20);
}
// Enciende y apaga el led:
else if( digitalRead(btnOnOff) )
{
while(digitalRead(btnOnOff)){} // Espera hasta que se suelte el boton
delay(20);
estadoLed = !estadoLed;
}
if( estadoLed )
analogWrite( led , brillo );
else
digitalWrite( led , LOW );
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Ergon escribió:una pregunta giltesa, esos modulos reles me comentaron el otro dia que llevan ya el transistor, tb llevan octo??
Se puede conectar directamente la carga al rele y ya esta o como se deberia conectar?? asi??
No veo la ventaja de comprarte una placa con circuito para 8 reles, y que necesites un hilo para cada rele, mas la tierra y la alimentacion del circuito. Para eso te compras los reles sueltos y los conectas directamente, y como mucho le pones un diodo en paralelo para evitar la corriente inversa, y te ahorras la mitad del precio sino mas.
Con esta capacidad de expansion no me extrañaria que acabaras con un arduino mega.
OverCraft escribió:Ergon escribió:una pregunta giltesa, esos modulos reles me comentaron el otro dia que llevan ya el transistor, tb llevan octo??
Se puede conectar directamente la carga al rele y ya esta o como se deberia conectar?? asi??
[img*]http://i43.tinypic.com/2z9fpy9.jpg[/img]
No veo la ventaja de comprarte una placa con circuito para 8 reles, y que necesites un hilo para cada rele, mas la tierra y la alimentacion del circuito. Para eso te compras los reles sueltos y los conectas directamente, y como mucho le pones un diodo en paralelo para evitar la corriente inversa, y te ahorras la mitad del precio sino mas.
Con esta capacidad de expansion no me extrañaria que acabaras con un arduino mega.
El modulo de reles no son solo reles, tienen mas componentes: leds, resistencias, transistores, optoacopladores, conectores de conexión...
Por 6€ gi que cuesta la placa con 8 reles yo no me complicaba.
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Kit de Arduino de iniciación: Motor paso a paso y su driver
Código: /*
Author: Alberto Gil Tesa
WebSite: [url]http://giltesa.com[/url]
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un driver y motor paso a paso.
Hace girar el eje del motor en una direccion u otra segun la constante "dir"
Los pines se conectan: IN1, IN2, IN3 y IN4 con D8, D9, D10 y D11 respectivamente.
*/
#define Pin0 8
#define Pin1 9
#define Pin2 10
#define Pin3 11
#define dir true
int step = 0;
void setup()
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
}
void loop()
{
// Aumenta, disminuye o resetea la variable step
// Para que el motor gire paso a paso:
if(dir)
step++;
else
step--;
if(step>7)
step=0;
if(step<0)
step=7;
switch(step)
{
case 0: motor( LOW , LOW , LOW , HIGH ); break;
case 1: motor( LOW , LOW , HIGH , HIGH ); break;
case 2: motor( LOW , LOW , HIGH , LOW ); break;
case 3: motor( LOW , HIGH , HIGH , LOW ); break;
case 4: motor( LOW , HIGH , LOW , LOW ); break;
case 5: motor( HIGH , HIGH , LOW , LOW ); break;
case 6: motor( HIGH , LOW , LOW , LOW ); break;
case 7: motor( HIGH , LOW , LOW , HIGH ); break;
default: motor( LOW , LOW , LOW , LOW ); break;
}
delay(1);
}
// Para no repetir codigo se usa una funcion que se llama en cada opcion del switch:
void motor( boolean s1, boolean s2, boolean s3, boolean s4)
{
digitalWrite(Pin0, s1);
digitalWrite(Pin1, s2);
digitalWrite(Pin2, s3);
digitalWrite(Pin3, s4);
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Kit de Arduino de iniciación: Servo
Código: #include <Servo.h>
Servo miServo;
int pos = 0;
void setup()
{
miServo.attach(2);
}
void loop()
{
for( pos = 0 ; pos < 180 ; pos++ )
{
miServo.write(pos);
delay(5);
}
for( pos = 180; pos>=1; pos-- )
{
miServo.write(pos);
delay(5);
}
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
giltesa, veo que pones mucho código, podías probar el resalto de código que tenemos, lo eliges en el combo de 'Lenguaje' según cual sea. A ver que te parece. Lo hemos vuelto a activar hoy por que se había ocultado sin saber por qué.
Por ejemplo:
Código: /*
Author: Alberto Gil Tesa
WebSite: [url]http://giltesa.com[/url]
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un driver y motor paso a paso.
Hace girar el eje del motor en una direccion u otra segun la constante "dir"
Los pines se conectan: IN1, IN2, IN3 y IN4 con D8, D9, D10 y D11 respectivamente.
*/
#define Pin0 8
#define Pin1 9
#define Pin2 10
#define Pin3 11
#define dir true
int step = 0;
void setup()
{
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
}
void loop()
{
// Aumenta, disminuye o resetea la variable step
// Para que el motor gire paso a paso:
if(dir)
step++;
else
step--;
if(step>7)
step=0;
if(step<0)
step=7;
switch(step)
{
case 0: motor( LOW , LOW , LOW , HIGH ); break;
case 1: motor( LOW , LOW , HIGH , HIGH ); break;
case 2: motor( LOW , LOW , HIGH , LOW ); break;
case 3: motor( LOW , HIGH , HIGH , LOW ); break;
case 4: motor( LOW , HIGH , LOW , LOW ); break;
case 5: motor( HIGH , HIGH , LOW , LOW ); break;
case 6: motor( HIGH , LOW , LOW , LOW ); break;
case 7: motor( HIGH , LOW , LOW , HIGH ); break;
default: motor( LOW , LOW , LOW , LOW ); break;
}
delay(1);
}
// Para no repetir codigo se usa una funcion que se llama en cada opcion del switch:
void motor( boolean s1, boolean s2, boolean s3, boolean s4)
{
digitalWrite(Pin0, s1);
digitalWrite(Pin1, s2);
digitalWrite(Pin2, s3);
digitalWrite(Pin3, s4);
}
Y por cierto, muchas gracias, te estás pegando un buen curro. Cuando leas esto borro el mensaje para no 'ensuciar'.
Y se acabo lo que se daba:
Sensor de luz y buzzer:
Código: /*
Author: Alberto Gil Tesa
WebSite: [url]http://giltesa.com[/url]
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un sensor de luz o LDR y un buzzer
[url]http://giltesa.com/wp-content/uploads/2013/07/ldr-buzzer.jpg[/url]
*/
#define ldr 0
#define ledBuzzer 13
void setup()
{
pinMode( ledBuzzer , OUTPUT );
}
void loop()
{
byte val = map( analogRead(ldr) , 0 , 1023 , 0 , 255 );
analogWrite(13, val);
}
Sensor de inclinación:
Código: ?/*
Author: Alberto Gil Tesa
WebSite: [url]http://giltesa.com[/url]
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de un sensor de inclinacion.
[url]http://giltesa.com/wp-content/uploads/2013/07/sensor-inclinacion.jpg[/url]
*/
#define sensor 3
#define led 13
void setup()
{
pinMode( sensor , INPUT );
pinMode( led , OUTPUT );
}
void loop()
{
digitalWrite( led , digitalRead(sensor) );
}
Resistencia variable o potenciómetro:
Código: ?/*
Author: Alberto Gil Tesa
WebSite: [url]http://giltesa.com[/url]
License: CC BY-NC-SA 3.0
Description:
Ejemplo de uso de una resistencia variable.
El codigo lee desde una entrada analogica un
valor de 0 a 1023 y con la funcion map lo pasa
a uno de 0 a 255 para cambiar el brillo del LED
de la placa. Esto solo funciona con un Arduino Mega,
con el resto no se puede ajustar el led de la placa.
[url]http://giltesa.com/wp-content/uploads/2013/07/potenciometro.jpg[/url]
*/
#define regulador 0
#define led 13
void setup()
{
pinMode( led , OUTPUT );
}
void loop()
{
byte val = map( analogRead(regulador) , 0 , 1023 , 0 , 255 );
analogWrite(13, val);
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
hectorri escribió:giltesa, veo que pones mucho código, podías probar el resalto de código que tenemos, lo eliges en el combo de 'Lenguaje' según cual sea. A ver que te parece. Lo hemos vuelto a activar hoy por que se había ocultado sin saber por qué.
Si, si lo use desde el principio pero ayer entre y vi que no funcionaba así que cambie todos los códigos a las etiquetas simples para que se cargaran :/
Lo pongo de nuevo en color que queda mejor, gracias
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Esto nos viene genial a los que estamos empezando con arduino.
Muchas gracias.
|