Ir al contenido principal

Arduino analógico


En este bloque vamos a construir algunos proyectos relacionados con la magia. Para alucinar del todo,  construiremos uno de los proyectos más increíbles pero también, de los más sencillos. Serás un músico reproduciendo música con diferentes objetos al azar, un artista que experimenta con el arte temporal o simplemente crearás un monstruo que proteja tus galletas. Para realizar el trabajo, podrás adentrarte en el reino de las señales analógicas. Aprenderás los conceptos básicos de lectura y escritura analógica, además de jugar con sensores que dan valores analógicos. También podrás conocer cómo funciona el Puerto Serial, que le da la potencia a Arduino para comunicarse con el ordenador, ampliando sus capacidades.

Una señal analógica es una magnitud que puede tomar cualquier valor dentro de un intervalo –Vcc y + Vcc. Por ejemplo, una señal analógica de tensión entre 0V y 5V podría valer 2,72V, o cualquier otro valor con cualquier número de decimales. Por contra, recordemos que una señal digital de tensión teórica únicamente podía registrar dos valores (en el ejemplo, 0V o 5V).



LDR

  • Hemos hecho una actividad en la que tocando un LDR se apagaba y arpadeaba un LED verde (lámpara sensible)
El código correspondiente es:


int ledPin=10;
int ldrPin=A1;
int potPin=A5;
 
void setup() {
  pinMode(ledPin,OUTPUT);
}
 
void loop() {
  int ldrValue=analogRead(ldrPin);
  int threshold=analogRead(potPin);
 
  if(ldrValue>threshold){
    digitalWrite(ledPin,LOW);
  }else{
    digitalWrite(ledPin,HIGH);
  }
  delay(10);
}












Enviando y recibiendo del ordenador
  • Para enviar un mensaje al ordenador, necesitarás tres comandos diferentesSerial.begin()Serial.println() o Serial.print().






Potenciómetro
  • Aquí hemos usando un potenciómetro para controlar el parpadeo de un LED. Conectando el Pin central del potenciómetro al Pin analógico A5, los otros Pins conéctalos a 5V y GND. Usaremos el LED on-board, incluido en la placa, como salida.

El código correspondiente es:


int ledPin = 10;
 
void setup() {
pinMode(ledPin, OUTPUT);
}
 
void loop() {
int val = analogRead(A5);
digitalWrite(ledPin, HIGH);
delay(val);
digitalWrite(ledPin, LOW);
delay(val); 
}







Escribiendo en analógico

Al igual que se puede leer señales analógicas, también se puede generar valores analógicos.Cuando se utiliza un Pin digital normal para escribir HIGH o LOW, se obtiene bien 5V o 0V. Estos Pins PWM tienen una habilidad diferente, puedes utilizarlos para obtener un nivel de tensión en cualquier punto entre 5V y 0V. Con esto, puedes atenuar un LED sin problemas entre ON y OFF.
El código correspondiente es:

int ledPin = 10;
int fade = 0;
 
void setup() {
// nothing here
}
 
void loop() {
analogWrite(ledPin, fade);
delay(10);
fade = fade + 10;
if (fade > 255) fade = 0;
}



Puerto serie

Las placas Arduino se conectan a un ordenador usando un cable USB. El modo en que las placas “hablan” con el ordenador consiste en una técnica llamada Puerto Serial o Puerto Serie. Este se puede usar para intercambiar datos relativamente complicados entre Arduino y el ordenador. En lugar de señales digitales o analógicas puedes enviar o recibir texto (string). Mediante comunicación serie puedes comunicarte también con otros programas. Puedes por ejemplo, utilizar Arduino para leer el estado de un botón y mandar los datos a un sketch de processing que cambie el color de la pantalla cuando el botón esté presionado.
 El puerto serie usa los Pins digitales 0 y 1:
  • El Pin 0, RX o recepción, por aquí llegan los datos a Arduino.
  • El Pin 1, TX o transmisión, por aquí salen los datos desde Arduino.




Comentarios