Arduino All-in-One Getting Started guía (4 / 5 paso)

Paso 4: Programación del proyecto

Ahora que hemos completado lo cableado nuestro proyecto es hora de escribir código. Estoy incluyendo todo el código a continuación, pero hablará sobre la teoría un poco primero.

El código que he proporcionado se compila a 1560 bytes de tamaño. Los mangos de Arduino programas hasta 14336 bytes de tamaño. Toma este proyecto poco más del 10% de la capacidad de Arduino, pero realmente no es código óptimo. Es un tutorial, por lo que he tratado de ser claro y más eficiente. Yo no estaría en absoluto sorprendido de encontrar que podría reescribirse en la mitad del espacio o menos.

Cada "dibujo" de Arduino tiene dos áreas obligatorias: configuración y lazo. Programa de instalación ejecuta una vez después de que el programa se inicia. Esto le permite configurar el estado inicial de la Junta: que pines son las entradas, que son salidas y si salidas empiezan alto o bajo. El lazo es la sección del programa executived repetidamente como programa de instalación ha finalizado. No hay "extremo" o "salida" a un programa de Arduino, no hay nada para salir a! Si usted tiene experiencia de programación, inmediatamente Reconocerás el lenguaje utilizado para programar el Arduino es nuestro buen amigo viejo C. Si no es así, usted puede recoger los fundamentos sólo por ir sobre mi y los otros ejemplos en el kit de desarrollo. Muchos tutoriales de C grandes también están disponibles en la web.

Puede copiar y pegar el código en el entorno de desarrollo Arduino, luego verificar y subirlo. Si todo está correcto debería obtener luces de blinky y poder variar la velocidad presionando el botón.

Ahora un desglose por secciones del bosquejo:

1) en primer lugar empezamos por definir algunas variables. Gran parte de esta área es para la comprensión humana y podría omitirse por eficiencia. Por ejemplo, he definido una variable llamada "ledPinRed" y ponerlo igual a 13 (utilicé tres colores de LED, el rojo uno está conectado al pin digital 13). Podría utilizar "13" directamente a través del programa, pero que hace mucho más difícil de comprender. Los comentarios al lado de las variables tenga en cuenta lo que cada uno es para el.

2) configuración. Aquí he marcado el pin al que está conectado el pulsador como un pin de entrada. El Arduino se busca para recibir información (señales de alto o bajo) allí. Yo he marcado las conexiones del LED a ser salidas donde la Junta establecerá la tensión como alto o bajo (5V o 0V) según el caso. Por último, encendí mi verde conducido y que los otros fueron dados vuelta apagado.

3) getButton: una función (sólo un contenedor para el código para cualquier no-programadores leyendo esto) que puede llamarse desde el bucle principal para saber si hemos presionado el botón. Realiza un seguimiento de la situación actual de la tecla y el estado previo del botón de la última vez miró. Esto nos permite responder sólo al pulsar un botón individual: mantener pulsado el botón sólo cuenta como una prensa. Esto es importante cuando las luces están cambiando muy rápidamente para no ser muy difíciles de controlar.

4) changeLights: otra función. Éste se llama cada vez que tenemos que pasar de un LED a la siguiente. Que está en consigue apagado y otro en secuencia consigue encendido. También actualiza la variable "currentLED" por lo que podemos hacer un seguimiento de que LED es actualmente activo.

5) bucle: el bucle principal. Aquí primero hacemos una llamada para comprobar en el botón. Si nos encontramos no se presiona el botón pero ahora, agregamos a la variable "currentSpeed". Si vamos muy rápido, nos restablecer currentSpeed a 1--bucle alrededor, así que podemos volver a bajas velocidades. Después de eso...

... bueno, entonces nos golpeó una fea línea que determina si es tiempo de cambiar a la siguiente LED. Millis() es una función incorporada de Arduino que realiza un seguimiento de cuánto tiempo la Junta ha estado funcionando el programa actual. Lo que estamos haciendo aquí es averiguar si ha pasado suficiente tiempo que deberíamos cambiar a la siguiente luz. Si es así, llamamos a la función "changeLights" para hacer que suceda.

Finalmente, aquí está el código (ADVERTENCIA: pierde un poco de formato cuando sea publicado aquí, por lo que no es tan bonita como podía ser):

/*

  • Tutorial de Arduino de Kevin

*

  • Este software está diseñado para ser utilizado con mi Arduino All-in-One Getting Started guía
  • más en

*
*/

Tenga en cuenta que estas variables son todos GLOBAL en su alcance, por lo que va a trabajar dentro de nuestras llamadas de función
int ledPinRed = 13; Establecer salidas digitales de LEDs
int ledPinYellow = 12;
int ledPinGreen = 11;
int switchPin = 2; Creado para leer el estado del interruptor de entrada digital 2
int currentLED = 1; Verde = 1, amarillo = 2, rojo = 3
currentSpeed int = 1; Se determina cómo rápidamente cambiar entre luces.
int buttonWas = 0; El estado del interruptor (empujado = 1, no = 0) última vez vimos
buttonIs int = 0; Estado actual del interruptor de
temporizador larga sin signo = 0; Un temporizador para hacer un seguimiento de donde estamos.

void setup() / / ejecuta una vez, cuando empieza el programa ("boceto")
{
pinMode (switchPin, entrada); Dice el Arduino para tratar la switchPin como entrada
pinMode (ledPinRed, salida); Dice el Arduino que el pin del LED rojo es para la salida
pinMode (ledPinYellow, salida);
pinMode (ledPinGreen, salida);
digitalWrite (ledPinGreen, HIGH); El LED verde está encendido al inicio
digitalWrite (ledPinRed, bajo); LED rojo está apagado al inicio
digitalWrite (ledPinYellow, bajo); LED amarillo está desactivada al inicio
}

void getButton() {/ / vamos a ver lo que el botón está haciendo, ¿vamos?
buttonWas = buttonIs; Establecer el estado antiguo del botón para que el estado actual ya que estamos creando un nuevo estado actual.
buttonIs = digitalRead(switchPin); Leer el estado de botón
}

void changeLights() {/ / apagar el LED actualmente encendido y encender otro.
Timer=Millis(); restablecer el temporizador de nuestro a la hora actual
{if(currentLED==1)}
digitalWrite (ledPinGreen, bajo);
digitalWrite (ledPinYellow, HIGH);
}
{if(currentLED==2)}
digitalWrite (ledPinYellow, bajo);
digitalWrite (ledPinRed, HIGH);
}
{if(currentLED==3)}
digitalWrite (ledPinGreen, HIGH);
digitalWrite (ledPinRed, bajo);
}
currentLED ++; Agregar a currentLED
Si (currentLED == 4) {currentLED = 1;}
}

void loop() / / este es nuestro circuito "principal". Programas de Arduino no salir, no para salir a!
{
getButton();
if((buttonIs==1) & &(buttonWas==0)) {}
currentSpeed ++; Agregar a la actual demora porque presionó el botón.
if(currentSpeed==15) {currentSpeed = 1;} / / lazo alrededor, esto nos hace volver a una rotación lenta.
}
Si (millis() > =timer+(1000/currentSpeed)) {/ / tiempo para cambiar las luces!
changeLights();
}
}

Artículos Relacionados

Arduino All-In-One telecontrol

Arduino All-In-One telecontrol

Ahora puede tener todos los mandos de tu casa en un dispositivo que cabe en tu mano con Arduino, nunca lucha por quien tiene el control remoto de TV otra vez!Para hacerlo se necesita:Arduino (utilicé una copia barata de la arduino UNO).Protector de t
CALIENTE y picante desayuno ALL-IN-ONE

CALIENTE y picante desayuno ALL-IN-ONE

Hash brown patatas, tocino crujiente, jalapeño y habanero queso y huevos frescos con Chipotle pepper - todo al horno en una lata del mollete de la tierra. A tan sólo 6 ingredientes (además de S & P al gusto).Paso 1: Ingredientes (2 porciones)A tan só
All in One PC / Computer - DIY

All in One PC / Computer - DIY

My DIY All in one PCEn los últimos años, utilizaba una Laptop del Inspiron de Dell como mi computadora diaria. Sin embargo poco a poco fue mostrando su edad y componentes parecen estar fallando uno a la vez. En primer lugar, el teclado dejó de funcio
Getting Started with Arduino en 60 minutos

Getting Started with Arduino en 60 minutos

¿Para que tenga un Kit de espacio de Ardusat u otras Arduino Starter Kit, ahora qué?Es una buena pregunta. El conocimiento fundamental que permite a los estudiantes a crear experimentos en el espacio se inicia con el humilde LED. Estas instrucciones
GETTING STARTED WITH ARDUINO #7

GETTING STARTED WITH ARDUINO #7

Heyya en este Instructables le enseñará sobre el sensor de temperatura usando Arduino.Follow para tutorial de Arduino y Python. Si tienes alguna duda en siguiendo el tutorial por favor deje un comentario.Paso 1: Electrónica necesariaArduinoProtoboard
GETTING STARTED WITH ARDUINO #4

GETTING STARTED WITH ARDUINO #4

Hola, Bienvenidos a mi 4to tutorial de Conseguir comenzado con ARDUINO. En este tutorial muestro cómo conectar una 7 segmentos display LCD para el Arduino. Como yo había dicho ya en anteriores instructable estas series son totalmente para principiant
GETTING STARTED WITH ARDUINO #1

GETTING STARTED WITH ARDUINO #1

Bienvenida de nuevo!!! Sentí que hay muchos principiantes que necesita aprender Arduino decidí ayudarles hacia fuera lanzando una serie de tutoriales de Arduino. La razón principal para la publicación de esta serie de Arduino esMe gusta publicar aquí
GETTING STARTED WITH ARDUINO #5

GETTING STARTED WITH ARDUINO #5

Hola, perdón por el retraso de este tutorial. Aquí en este tutorial te enseñaré cómo Control dos LED usando Arduino. esto es el principio básico de los sistemas de semáforo. Donde la luz cambia de un color a otro color después de un retraso de pocos
GETTING STARTED WITH ARDUINO #3 zumbador

GETTING STARTED WITH ARDUINO #3 zumbador

Hola, estoy aquí para explicar el uso del zumbador piezoeléctrico usando Arduino. Te vez te has preguntado de crear un tono de música con la ayuda de Arduino? Este tutorial le mostrará cómo crear un tono de música con la ayuda de este microcontrolado
GETTING STARTED WITH ARDUINO #2

GETTING STARTED WITH ARDUINO #2

HEYYA!!!!!! Otra vez estoy aquí para enseñarte sobre las bases de Arduino. Espero que lea mi anterior instructable. Si te did'nt Echale un vistazo esta consiguiendo comenzado con ARDUINO #1. Así que en este instructables voy a enseñar acerca de digit
Frambuesa Pi de All-in-One guía de introducción

Frambuesa Pi de All-in-One guía de introducción

Frambuesa Pi, uno de la invención más ingeniosa para los fabricantes y los hackers. ¿Antes de empezar en los detalles nitty arenosos de conseguir que la instalación, primero hay que reflexionamos sobre la pregunta que lo que la frambuesa Pi realmente
Getting Started With DeskProto

Getting Started With DeskProto

Fresado CNC es una herramienta indispensable para cualquier hogar tienda de máquina. Puede ayudar en cualquier hobby o de hecho ser un pasatiempo gratificante de por sí. CNC que muele, sin embargo, puede ser un poco intimidante para empezar su costos
Charisma: A K'nex All-In-One Camera Rig

Charisma: A K'nex All-In-One Camera Rig

Carisma es una plataforma de cámara del estado del arte de K'nex que puede utilizarse para tomar videos de persona primera casi cualquier medio ambiente. Creado a partir de un diseño simple, pero robusto, carisma sólo toma unos minutos para construir
Getting Started With indexadas fresado de 4 ejes

Getting Started With indexadas fresado de 4 ejes

En el mundo del mecanizado dos cosas son la clave; Precisión y eficiencia. Aunque fantásticas piezas pueden ser producidas por el trabajo manual es simple hecho controlado por ordenador sistemas de herramientas siempre será preferibles para el trabaj