"Hola Mundo I" Primer Programa Arduino

En este tutorial aprenderas como cargar tu primer programa arduino de la computadora a la tablilla Arduino.

 

El código esta acá:

//===========================================================
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);  
// turn the LED on (HIGH is the voltage level)
  delay(1000);            
// wait for a second
  digitalWrite(led, LOW);    
// turn the LED off by making the voltage LOW
  delay(1000);              
// wait for a second
}

//============================================================

Material Necesario:

Hola Mundo II

En este tutorial aprenderás una versión diferente del Hola mundo controlando dos salidas.

 

 

//===========================================================
/* Este breve programa enciende el LED 10 y 11
en intervalos de un segundo, intermitentemente*/
void setup() 
pinMode(10, OUTPUT); //Pin 10 como Salida. 
pinMode(11, OUTPUT); //Pin 11 como Salida. 
 
//Indicamos que hacer con las salidas. 
 
void loop() 
digitalWrite(10, HIGH); // Pone la salida 10 a ON 
digitalWrite(11, LOW); // Pone la salida 11 a OFF
delay(1000); // Espera un segundo
 
digitalWrite(10, LOW); // Pone la salida 10 a OFF 
digitalWrite(11, HIGH); // Pone la salida 11 a ON
delay(1000); // Espera un segundo 
//===========================================================
 
 
 

 

Torreta de LEDs
 

//===========================================================
/*
  Torreta
  Enciende y apaga los 8 leds en forma de torreta
 
  Ejemplo de dominio publico
 */
 
// Los pines del 0 al 7 son nombrados
int led0 = 0;
int led1 = 1;
int led2 = 2;
int led3 = 3;
 
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
 
// La rutina setup empieza a correr despues de presionar reset
void setup() {                
  // Inicializa las salidas
  pinMode(led0, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
}
 
// este loop corre de forma infinita
void loop() {
  digitalWrite(led0, HIGH); 
  digitalWrite(led1, LOW); 
  digitalWrite(led2, HIGH);
  digitalWrite(led3, LOW); 
  
  digitalWrite(led4, HIGH); 
  digitalWrite(led5, LOW); 
  digitalWrite(led6, HIGH); 
  digitalWrite(led7, LOW);
  // Enciende los leds en un patron de 10101010  
  delay(1000);               
  // wait for a second
  digitalWrite(led0, LOW); 
  digitalWrite(led1, HIGH); 
  digitalWrite(led2, LOW);
  digitalWrite(led3, HIGH); 
  
  digitalWrite(led4, LOW); 
  digitalWrite(led5, HIGH); 
  digitalWrite(led6, LOW); 
  digitalWrite(led7, HIGH);  
  // Enciende los leds en un patron de 01010101
  delay(1000);               
  // wait for a second
  digitalWrite(led0, HIGH); 
  digitalWrite(led1, HIGH); 
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH); 
  
  digitalWrite(led4, LOW); 
  digitalWrite(led5, LOW); 
  digitalWrite(led6, LOW); 
  digitalWrite(led7, LOW);  
  // Enciende los leds en un patron de 11110000
  delay(1000);               
  // wait for a second
  digitalWrite(led0, LOW); 
  digitalWrite(led1, LOW); 
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW); 
  
  digitalWrite(led4, HIGH); 
  digitalWrite(led5, HIGH); 
  digitalWrite(led6, HIGH); 
  digitalWrite(led7, HIGH);  
  // Enciende los leds en un patron de 00001111
  delay(1000);               
  // wait for a second
}
//===========================================================
 
 
 
 

 

 
Uso del Boton
 
En esta practica vamos a usar un Boton para controlar un Buzzer:
 
 

 
//===========================================================
/*
En este programa se usa el PIN0 de salida de un Buzzer
el PIN1 como entrada de un boton.
Cuando se presiona el boton suena el buzzer
*/
 
int pinBoton = 1; 
//Pin del Botón 
int pinBuzzer = 0; 
//Pin del buzzer
int estadoBoton = 0; 
// Variable para estado del botón
 
void setup() { 
pinMode(pinBuzzer, OUTPUT); 
// Pin 0 salida 
pinMode(pinBoton, INPUT); 
// Pin 1 entrada 
 
void loop(){ 
  // Lee el valor del pin del botón y lo almacena 
  // en la variable estadoBoton 
  estadoBoton = digitalRead(pinBoton); 
  // Verifica si el botón está pulsado: 
  if (estadoBoton == HIGH) {
   // Si esta pulsado, enciende el Buzzer: 
   digitalWrite(pinBuzzer, LOW);
   } else { 
   // Si no está pulsado, lo mantiene apagado: 
 digitalWrite(pinBuzzer, HIGH); 
 } 
 }
//===========================================================
 
 
 

 

Entrada Analogica
 
Como usar la entrada analogica de Arduino para desplegar datos por el puerto serial
 
 

 
//===========================================================
/*
  AnalogReadSerial
  Lee una entrada analogica en el pin A0, despliega el resultado en el puerto serial.
  Solo se pone el pin central del potenciometro al pin A0 y los extremos a +5V y tierra.
 
Ejemplo de dominio publico. Sual Labs 2014
 */
int analogValue = 0;    
// variable para guardar el valor analogico
 
// Esta rutina se ejecuta una vez al presionar Reset
void setup() {
  // Inicializa el puerto serial de comunicacion a 9600 bits por segundo.
  Serial.begin(9600);
}
 
// Esta rutina correra una y otra vez mientras este energizado el Arduino
void loop() {
  analogValue = analogRead(0);
  // lee la entrada analogica en el pin 0
  Serial.print("Valor : ");
  Serial.println(analogValue);
  // Despliega el valor que se acaba de leer
  delay(10);       
  // un delay entre lecturas solo para estabilidad
}
//===========================================================
 

 
Vumetro de LEDs
 
 
 
/*
Este ejemplo lee el valor de un potenciometro y lo pone en la salida
en forma de una serie de 8 leds, osea un vumetro.
 
Ideal para aprender, entradas analogicas, salidas digitales, comunicacion serial
y control de rutinas usando instruccion switch
 
Codigo de dominio publico wwww.suallabs.com 2014
 
 */
int analogInPin = A0;  
// Entrada analogica donde se pone el potenciometro
 
// Los pines del 0 al 7 son nombrados
int led0 = 0;
int led1 = 1;
int led2 = 2;
int led3 = 3;
 
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
 
int sensorValue = 0;        
// Variable donde se guarda el valor del sensor
int outputValue = 0;        
// Variable para guardar el valor de la salida
 
void setup() {
// Serial.begin(9600);
// Inicializa la comunicacion serial
  pinMode(led0, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
// Inicializa las salidas  
}
 
void loop() {
  // lee la entrada del potenciometro
  sensorValue = analogRead(analogInPin);            
  // mapea el valor de entrada de 0 a 1023 a un nuevo valor de 0 a 7
  outputValue = map(sensorValue, 0, 1023, 0, 7);  
 
  switch (outputValue){
  case 0:    // En caso de valor 0
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, LOW); 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW); 
  
    digitalWrite(led4, LOW); 
    digitalWrite(led5, LOW); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 1:    // En caso de valor 1
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW); 
  
    digitalWrite(led4, LOW); 
    digitalWrite(led5, LOW); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 2:    // En caso de valor 2
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, LOW); 
  
    digitalWrite(led4, LOW); 
    digitalWrite(led5, LOW); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 3:    // En caso de valor 3
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
  
    digitalWrite(led4, LOW); 
    digitalWrite(led5, LOW); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 4:    // En caso de valor 4
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
  
    digitalWrite(led4, HIGH); 
    digitalWrite(led5, LOW); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 5:    // En caso de valor 5
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
  
    digitalWrite(led4, HIGH); 
    digitalWrite(led5, HIGH); 
    digitalWrite(led6, LOW); 
    digitalWrite(led7, LOW);
    break;
  case 6:    // En caso de valor 6
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
  
    digitalWrite(led4, HIGH); 
    digitalWrite(led5, HIGH); 
    digitalWrite(led6, HIGH); 
    digitalWrite(led7, LOW);
    break; 
  case 7:    // En caso de valor 7
    digitalWrite(led0, HIGH); 
    digitalWrite(led1, HIGH); 
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH); 
  
    digitalWrite(led4, HIGH); 
    digitalWrite(led5, HIGH); 
    digitalWrite(led6, HIGH); 
    digitalWrite(led7, HIGH);
    break;    
  } 
 
  // Escribe los resultados en el monitor serial
  // Serial.print("sensor = " );                       
  // Serial.print(sensorValue);      
  // Serial.print(" salida = ");      
  // Serial.println(outputValue);   
 
  // espera dos milisegundos antes de la siguente interaccion
  delay(2);                     
}