Codigo Arduino PDF
Codigo Arduino PDF
CÓDIGO
El código para encender es similar al que vimos en el tutorial Nuestro primer programa en
Arduino. En realidad es exactamente igual, cambiando el 13 por el pin de la salida que queramos
activar. Recordaremos que el pin 13 es un pin especial, que está conectado con el led integrado
en la placa.
Así el siguiente código, que es una modificación del archivo de ejemplo Blink, enciende
y apaga una salida digital.
El siguiente código, que vimos en la entrada del puerto serie de Arduino, recibe un
caracter a través del puerto serie para encender o apagar una señal digital desde el
ordenador.
void setup(){
Serial.begin(9600);
pinMode(pin, OUTPUT);
}
void loop(){
//si existe información pendiente
if (Serial.available()>0){
//leeemos la opcion
char option = Serial.read();
if (option == '0' ) //si el valor es 0
{
digitalWrite(pin, LOW); //apagamos el pin
}
else if (option == '1' )
{
digitalWrite(pin, HIGH; //encendemos el pin
}
delay(200);
}
}
ENCENDIENDO UN LED
la tensión que soporta el LED es la diferencia entre la tensión aplicada y la tensión de polarización
directa del LED. Aplicando la ley de Ohm, con el valor de la intensidad nominal del LED
void loop(){
digitalWrite(ledPIN , HIGH); // poner el Pin en HIGH
delay(1000); // esperar un segundo
digitalWrite(ledPIN , LOW); // poner el Pin en LOW
delay(1000); // esperar un segundo
}
El siguiente código emplea las salidas digitales y la comunicación por puerto serie para hacer
parpadear el LED el número de veces que enviemos por el puerto serie, tal y como vimos en la
entrada comunicación por el puerto serie de Arduino.
int option;
void setup(){
Serial.begin(9600);
pinMode(ledPIN , OUTPUT);
void loop(){
if (Serial.available()>0){
//leeemos la opcion
option -= '0';
for(int i=0;i<option;i++){
digitalWrite(ledPIN , HIGH);
delay(100);
digitalWrite(ledPIN , LOW);
delay(200);
}
}
Por último, el siguiente código emplea una salida PWM para hacer variar la intensidad del LED,
tal y como vimos en la entrada salidas analógicas en Arduino.
byte outputValue = 0;
void setup()
pinMode(ledPIN , OUTPUT);
void loop()
analogWrite(ledPIN , outputValue);
}
}
Anuncio:
ESQUEMA DE MONTAJE
En el caso de usar conexión analógica, no es necesario que empleéis el pin SCA y SCL.
En caso de emplear conexión por I2C podemos dejar sin conectar sin conectar el pin
Vout.
EJEMPLOS DE CÓDIGO
La lectura analógica del sensor es similar al resto de sensores infrarrojos
de distancia que hemos visto. Un ejemplo de código es el siguiente.
void loop()
{
auto raw = analogRead(sensorPin);
Serial.println(raw);
delay(100);
}
// 7 highest bits
#define ADDRESS (0x80 >> 1)
uint8_t distance_raw[2] = { 0 };
uint8_t shift = 0;
uint8_t distance_cm = 0;
char buf[100];
void setup()
{
Wire.begin();
Serial.begin(9600);
delay(2000);
Serial.println("Initializing");
Wire.beginTransmission(ADDRESS);
Wire.write(byte(SHIFT_ADDR));
Wire.endTransmission();
Wire.requestFrom(ADDRESS, 1);
if (1 <= Wire.available())
{
shift = Wire.read();
}
void loop()
{
// Read basic measurement
Wire.beginTransmission(ADDRESS);
Wire.write(byte(DISTANCE_ADDR));
Wire.endTransmission();
Wire.requestFrom(ADDRESS, 2);
if (2 <= Wire.available())
{
distance_raw[0] = Wire.read();
distance_raw[1] = Wire.read();
// Print distance in cm
distance_cm = (distance_raw[0] * 16 + distance_raw[1]) / 16 / (int)pow(2, shift);
sprintf(buf, "Distance %u cm", distance_cm);
Serial.println(buf);
}
else
{
Serial.println("Read error");
}
delay(1000);
}