Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas

9 feb 2015

INTRODUCCIÓN

Visita mi nueva web: http://www.programacionyrobotica.com/


Este blog nace como una herramienta para aprender PROGRAMACIÓN, ELECTRÓNICA y ROBÓTICA desde cero. Afortunadamente hoy en día los lenguajes de programación son mucho más visuales y los sistemas microprogramables más modulares y amigables. Esto, unido a la aparición de numerosos sistemas de software y hardware abiertos y al gran desarrollo de las comunidades virtuales, hace que, conocimientos que antes estaban tan sólo al alcance de universitarios y personal cualificado, ahora se traslade a las aulas de Secundaria. De esta manera, se puede convertir en un hobbie compartido con amigos o familiares, que a la larga desemboque en una salida profesional.

Iremos aprendiendo a programar la tan versátil y conocida placa ARDUINO, para llegar a desarrollar proyectos de robótica muy interesantes, mediante su software propio y ayudándonos de herramientas para su desarrollo como Fritzing.
De igual manera, llegaremos a programar páginas web con ayuda de HTML5 y CSS3, así como aplicaciones para móvil con App Inventor.
Aprenderemos también a programar videojuegos desde edades muy tempranas gracias al amigable e intuitivo lenguaje de SCRATCH, y lo haremos interactuar con la placa ARDUINO mediante S4A.
También programaremos en Processing explotando su gran potencial en video y gráficos, y relacionaremos ARDUINO, el PC e Internet.

El blog estará en constante crecimiento, sumando recursos de todo tipo que os sirvan de guía en este tan apasionante mundo de la programación. Espero os sea de ayuda.

15 jul 2014

CONTANDO PULSOS POR COMUNICACIÓN SERIAL

En esta práctica de ARDUINO vamos a aprender a contar pulsos a partir de una entrada digital. Para ello utilizaremos un pulsador, y señalizaremos cada pulsación encendiendo un LED rojo (a través de una salida digital) e iremos mostrando el número de pulsaciones hechas a través del "Monitor Serial".

A partir de esta sencilla práctica podéis pensar en alguna aplicación y mejora....como por ejemplo:

  • un sistema de parking de coches que llegado a un determinado número encienda un luminoso de "completo".
  • un sistema que controle la densidad de tráfico (coches por hora) de una autopista o vía.
  • un contador de aforo en cines, estadios, etc..

Además, con prácticas sencillas como ésta, nos irán saliendo pequeños problemas técnicos, como el de los rebotes de los pulsadores, que iremos dando solución.

MATERIAL NECESARIO


1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Placa Protoboard
1 – Pulsador
1 – Resistencia de 10kΩ
1 – Diodo LED
1 – Resistencia de 220Ω

CONEXIONADO EN PLACA PROTOBOARD


ESQUEMA ELÉCTRICO


En la siguiente figura se muestran los circuitos correspondientes a la entrada (PULSADOR) y a la salida (LED), para su mejor comprensión.



CÓDIGO

/* Cuenta los pulsos introducidos por un pulsador y los señaliza con
un LED y muestra la cuenta a través del Monitor Serial */

const int PulsadorPin = 2; //Pin donde se conecta el pulsador
const int LedPin = 10;  //Pin donde se conecta el LED
int LecturaBoton = 0; //Variable que contiene el valor del pulsador
int ContPulso=0; //Variable para conteo de numero de pulsos

void setup() 
{
Serial.begin(9600);
pinMode(PulsadorPin, INPUT);  //configuramos el pin 2 como entrada
pinMode(LedPin, OUTPUT);  //configuramos el pin 10 como salida
}

void loop()
{
LecturaBoton = digitalRead(PulsadorPin);
//Lee la entrada del pulsador y lo almacena en la variable
if(LecturaBoton == HIGH) //si se presiona el pulsador
   { 
   digitalWrite(LedPin, HIGH); // enciende el LED
   ContPulso++;  //incrementa el número de pulsos
   Serial.println(ContPulso);  //lo muestra por el Monitor Serial
   delay(300);  
   /*este retraso es para evitar los posibles rebotes del pulsador.
   El valor tiene que ser no muy pequeño (porque si no contaría más
   de una pulsación al pulsar), ni muy grande (porque si no podría 
   no detectar pulsaciones en esos tiempos de espera)
   */
   } 
else
   {
   digitalWrite(LedPin, LOW); // apaga el LED
   }

}