Programas Arduino
Programas Arduino
// initialize serial:
Serial.begin(9600);
delay(5000);
Serial.println("Hola!");
}
void loop() {
delay(500);
Serial.print("Ha pasado ");
delay(500);
Serial.println("un segundo");
}
/*
El siguiente codigo muestra el uso de las funciones digitalRead(),
digitalWrite() y pinMode().
La experiencia consiste en un boton, que al ser apretado toma valor
HIGH y se enciende el LED.
Ademas, ahora se mostrara en la serial, el estado de los pines.
*/
int btn = 0; // valor leido del boton
void setup() {
/*
Esta experiencia pretende mostrar el uso de variables tipo char
*/
char tab = 9;
char indice = 0;
void setup() {
Serial.begin(9600); // Se inicia la comuncacion serial
Serial.println("Empezamos");
}
void loop() {
Serial.print((int)indice);
Serial.print(tab);
Serial.print(":");
Serial.print(tab);
Serial.println(indice);
delay(500); // se agrega un retardo para facilitar la visualizacion en la serial
indice = indice + 1;
}
/*
Esta experiencia pretende mostrar el uso de variables. El tiempo de encendido/apagado
del led
se almacena en una variable, la cual puede ser cambiada por las entradas de los botones.
*/
// Variables globales
int btn1 = 8;
int btn2 = 7;
int ledpin = 11;
int tmpo = 500; // Iniciacion y asignacion de la variable del tiempo
int inc; // Iniciacion de la variable de incremento
int dec; // Iniciacion de la variable de decrecimiento
void setup() {
pinMode(ledpin, OUTPUT);
pinMode(btn1, INPUT);
pinMode(btn2, INPUT);
Serial.begin(9600);
delay(2000);
}
void loop() {
inc = digitalRead(btn1); // inc toma el valor del pin btn1
dec = digitalRead(btn2); // dec toma el valor del pin btn2
tmpo = tmpo + 50*inc - 50*dec; // El valor de tmpo se modifica
Serial.println(tmpo); // Se imprime el valor de tmpo
//Encendido y apagado del LED
digitalWrite(ledpin, HIGH);
delay(tmpo);
digitalWrite(ledpin, LOW);
delay(tmpo);
}
/*
*/
// Variables globales
int btn1 = 8;
int btn2 = 7;
int indice = 3; // Iniciacion y asignacion de la variable del indice
int inc; // Iniciacion de la variable de incremento
int dec; // Iniciacion de la variable de decrecimiento
// Envia introduccion
Serial.println("\nEjemplo funcion String()\n");
//Inicializacion directa
String str1 = "Inicializacion directa";
Serial.println(str1);
//Funcion String: String como input
String str2 = String("Inicializacion con String()");
Serial.println(str2);
//Funcion String: char como input
String str3 = String('a');
Serial.println(str3);
//Funcion String: int como input
String str4 = String(13);
Serial.println(str4);
//Concatenacion de Strings
String str5 = String(str3+" y "+str4);
Serial.println(str5);
}
void loop() {
}
void setup() {
char frase[] = {'E','s','t','a',' ','e','s',' ','u','n','a',' ','f','r','a','s','e','\0'};
String frase2 = "Esta es otra frase";
Serial.begin(9600);
delay(2000);
Serial.println(frase);
Serial.println(frase2);
}
void loop(){
}
int contador = 0;
boolean condicion;
void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
delay(2000);
// Envia introduccion
Serial.println("\n\nEjemplo if");
Serial.println();
Serial.println("Empezamos!");
}
void loop() {
Serial.println(contador);
int contador = 0;
void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
// Envia introduccion
Serial.println("\n\nEjemplo if");
Serial.println();
Serial.println("Empezamos!");
}
void loop() {
Serial.println(contador);
if (contador++ == 10) {
Serial.println("Volvemos a empezar");
contador = 0;
}
delay(1000);
}
int contador = 0;
void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
// Envia introduccion
Serial.println("\n\nEjemplo if");
Serial.println();
Serial.println("Empezamos!");
}
void loop() {
Serial.println(contador);
if (contador++ == 10) {
Serial.println("Volvemos a empezar");
contador = 0;
}
else{
Serial.println("Aumenta en uno");
}
delay(1000);
}
i nt mi_numero = 0;
void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
// Envia introduccion
Serial.println("\n\nEjemplo while");
Serial.println();
Serial.println("Empezamos!");
}
void loop() {
while (mi_numero++ < 10) {
Serial.println(mi_numero);
delay(1000);
}
Serial.println("Volvemos a empezar");
mi_numero = 0;
delay(1000);
}
nt mi_numero = 0;
void setup() {
// Inicializa la comunicacion serial
Serial.begin(9600);
// Envia introduccion
Serial.println("\n\nEjemplo while");
Serial.println();
Serial.println("Empezamos!");
}
void loop() {
while (mi_numero++ < 10) {
Serial.println(mi_numero);
delay(1000);
}
Serial.println("Volvemos a empezar");
mi_numero = 0;
delay(1000);
}
Ejemplo de funciones
void setup() {
Serial.begin(9600);
Serial.println("Empezamos!");
}
int a = -2;
int b = 3;
void loop() {
funcion_ejemplo(a++, b);
delay(1000);
}
void funcion_ejemplo(int x , int y) {
if (x > 0) {
Serial.println(2 * y);
}
else {
Serial.println(y);
}
}
Interrupciones
ISR
/*
* Esta experiencia muestra el uso de ISR. Consiste en que al presionar el boton, sin
importar en que momento se haga,
* el led cambiara su estado: si esta en su fase encendida, se apagara, y viceversa.
*/
int Btn0 = 2; // Pin ligado a int.0
int Btn1 = 3; // Pin ligado a int.1
int pinLed = 11;
void setup() {
pinMode(Btn0, INPUT);
pinMode(Btn1, INPUT);
pinMode(pinLed, OUTPUT);
attachInterrupt(0,apaga_led, RISING);
attachInterrupt(1,prende_led, RISING);
Serial.begin(9600);
delay(2000);
}
void loop() {
delay(2500);
Serial.print("Han pasado ");
delay(2500);
Serial.println("5 segundos");
}
/* La funcion de interrupcion cambia el estado actual del led */
void apaga_led() {
digitalWrite(pinLed, 0);
}
void prende_led() {
digitalWrite(pinLed, 1);
}
Ejemplo de potencimetro
/*
* Esta experiencia muestra el uso de la funcion analogRead(). Con esta funcion se mide el
voltaje de un divisor de tension
* entre un resistor y un potenciometro en serie. Luego, a traves de operaciones
matematicas, se muestra en la serial, el
* valor aproximado de la resistencia en la posicion del potenciometro.
*/
int btn1 = 2;
int AnInput = 0;
int lectura = 0;
void setup() {
Serial.begin(9600);
delay(1000);
}
void loop() {
lectura = analogRead(AnInput);
if (digitalRead(btn1) == LOW) {
//Imprime el valor digital
Serial.println(lectura);
}
else {
//Imprime el equivalente en voltaje
Serial.println(lectura * 0.0049);
}
delay(1000);
}