Virtual BreadBoard
En esta entrada realizaremos unos ejercicios muy basicos de arduino sobre el simulador de arduino:
"Virtual BreadBoard"
"Virtual BreadBoard"
Estructura de un Sketch(programa)
Un programa Simple en arduino se compone de almenos 2 partes(Funciones):
- La primera funcion :Void setup() que es donde establecemos las configuraciones debe ser incluida esta funcion aunque no haya declaracion que ejecutar/li>
- La segunda Funcion:Void loop() es la que contiene el programa que se estara ejecutando ciclicamente
una vez que el programa se invoca a la funcion setup() despues se llama a la funcion loop() que como su nombre lo indica se ejecuta ciclicamente
void setup() { estamentos; } void loop() { estamentos; }
sin embargo nosotros tambien podemos crear nuestrar propias funciones , de manera que podamos reducir el tamaño de un programa
type nombreFuncion(parametros) { estamentos; }
Declaracion de variables
- Variables Globales: Variable que puede ser vista y utilizada por cualquier funcion
- Variables Locales: variable que puede ser vista o utilizada dentro de la funcion o bucle que se declaro Nota:
entonces podemos tener 2 o mas variables con el mismo nombre en diferentes partes del programa
int valor; // valor es visible para cualquier funcion void setup () { } void loop() { for (int i=0; i <20;) //i solo es visible dentro del bucle for { i++ } int j; // es visible solo dentro de la funcion loop }Tipos de Variables:
- Byte(tiene un rango de 0 a 255 ya que almacena un valor numerico de 8 bits sin decimales):
byte variable = 200; //Declaramos una variable como tipo Byte
- Int(Almacena valores numericos de 16 bits, sin decimales, entonces abarca un rango de 32767 a -32768):
int x=2000; //declara una x como una variable de tipo entero
- Long(Almacena valores numericos de 32 bits , sin decimales y abarca un rango de -2147483648 a 2147483647):
long y=90000; //Declaramos la variable "y" como tipo long
- Float(Almacena valores numericos valores numericos con decimales y abarca un rango de 3.4028235E+38 a -3.4028235E+38):
float z=3.5; //Declaramos la variable "z" como tipo flotante
Asignaciones Compuestas
Operadores Logicos
Constantes
algunos ejemplos de constantes son las siguientes
TRUE/FALSE
Constantes booleanas en done el false indica un 0 y el TRUE se asocia con cero pero tambien puede ser cualquier otro valor distinto de cero(-2, -5 -200 son definidos como TRUE):
if(x==TRUE) { instrucciones }
HIGH/LOW
Constantes que se utilizan para escritura o lectura digital. HIGH(alto) se toma como en la logica de nivel 1(ON) o 5 voltios
LOW(bajo) se toma como logica nivel 0(OFF) o 0 voltios:
digitalWrite(13,HIGH); //activamos el pin 13 con un nivel alto(1,ON,5v)
INPUT/OUTPUT:
Constantes utilizadas para definir si un pin va a ser una entrada(INPUT) o salida(OUTPUT):
pinMode(13, OUTPUT);//Establecemos el pin 13 como salida
Entradas y Salidas Digitales
pinMode(pin, mode)
Esta instruccion es utilizada en la funcion setup() ya que establecemos el modo de trabajo de un pin.
pinMode(13,OUTPUT); //configuramos el pin 13 como salida
digitalWrite(pin, valor)
Con esta instruccion podemos enviar un valor de HIGH o LOW al pin definido previamente como OUTPUT
digitalWrite(pin,HIGH); //Establecemos el valor HIGH en el pin
digitalRead(pin)
Lee el valor de un pin(definido como digital), pudiendo leer HIGH o LOW
valor=digitalRead(pin); //el estado que se lea del pin se le asignara a valor
Control de tiempo
delay(milisegundos)
Con esta instruccion podemos detener la ejecucion del programa la cantidad de milisegundos que le indiquemos
delay(1000); //se detiene la ejecucion del programa durante 1 segundo
millis()
Devuelve el numero de milisegundos transcurrido desde el inicio del programa hasta el momento actual
Nota:El numero se desbordara si no resetea despues de 9 horas
valor = millis();
Programa 1
Descripcion:Encender y apagar un led
codigo:
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
Implementacion: solo Conectamos un led al pin 13(el pin 13 tiene una resistencia interna)
Entradas y salidas Analogicas
analogRead(pin)
Con esta instruccion solo lee el valor de un pin definido previamente como entrada analogica
analogRead(pin);
analogWrite(pin)
Con esta instruccion podemos escribir un pseudo-valor analogico por el metodo de modulacion por ancho de pulso (PWM) a uno de los pin`s del arduino marcados como (pin PWM)
Nota: Algunos arduinos que implementan el chip Atmega168, permiten habilitar como salidas analogicas tipo pwm los pines 3, 5, 6, 9, 10 y 11. Los que implementan el ATmega8 solo tienen habilitadas los piens 9, 10 y 11 como (PWM)
analogWrite(pin);
Matematicas
min(x,y)
Esta instruccion devuelve el numero mas pequeño , acepta cualquier tipo de datos
x=min(50,100); //asigna el valor de 50 a la variable x
max(x,y)
Esta instruccion devuelve el numero mas grande , acepta cualquier tipo de datos
x=max(50,100); //asigna el valor de 100 a la variable x
Aleatorio
randomSeed(seed)
Esta instruccion te permite colocar una variable, constante o una funcion lo que te permitira generar numeros aleatorios
randomSeed(seed);
random(min,max)
Con esta instruccion nos permitira generar numeros aleatorios estableciendo un rango minimo y otro maximo
x=random(50,100); // asigna a la variable x un valor entre los rangos de 50-100
Puerto Serie
serial.begin(rate)
Esta instruccion abre el puerto serie y fija la velocidad en Baudios
Notas:El valor tipico de velocidad para comunicarse con el ordenador es de 9600
El valor tipico de velocidad para comunicarse con el ordenador es de 9600
Cuando se utiliza la comunicacion serie los pins digital 0(RX) y 1(TX) no puede utilizarse al mismo tiempo
setup() { serial.begin(9600); //abre el puerto serie y establece la velocidad en 9600 bps }
serial.println(data)
Esta instruccion Imprime los datos en el puerto serie, seguido de un retorno de carro automatico y salto de linea.
serial.println(analogValue); // Envia el valor analogValue al puerto
serial.print(data,data Type)
Con esta instruccion podemos detener la ejecucion del programa la cantidad de milisegundos que le indiquemos
serial.println(data,data Type);
antes de nada muy buen post y muy claro. pero soy nuevo en VBB, cuando cargo un proyecto nuevo en blanco añado una placa arduino uno y debajo me sale media pantalla en azul cielo, se supone que ahí va el codigo pero ¿como lo escribo? ¿tengo que cargar algun eeprom?
ResponderEliminaral agregar el arduino es una parte , despues tienes que crear un archivo con extension .pde y una vez que lo creas en la parte inferior del programa te aparece una area en donde podras escribir tu codigo, despues tienes que ligar el codigo con la placa arduino que agregaste anteriormente y despues solo le das correr simulacion , yo me habia basado de este video:
ResponderEliminarhttp://www.youtube.com/watch?v=TfemwzKfKrc