Thema Name Beschreibung
Thema 2 Datei Guión 1: Fundamentos básicos del lenguaje C

Guión 1: Fundamentos básicos del lenguaje C

Datei Guión 2: Estructuras de control

Guión 2: Estructuras de control

Datei Guión 3: Funciones

Guión 3: Funciones

Datei Guión 4: Arrays

Guión 4: Arrays

Datei Guión 5: Cadenas de caracteres

Guión 5: Cadenas de caracteres

Datei Guión 6. Ficheros

Guión 6. Ficheros

Thema 3 Datei Introducción a la plataforma Arduino (I)

Introducción a la plataforma Arduino (I)

Datei Introducción a la plataforma Arduino (II)

Introducción a la plataforma Arduino (II)

Datei Aplicación de la plataforma Arduino a la enseñanza de la programación en lenguaje C

Aplicación de la plataforma Arduino a la enseñanza de la programación en lenguaje C

Link/URL Introducción a la placa Arduino Uno

Introducción a la placa Arduino Uno

Link/URL Página oficial de Arduino

Página oficial de Arduino

Link/URL BricoGeek

BricoGeek

Verzeichnis LED tricolor

El circuito consta del un LED RGB, uno de cuyos pines está conectado a masa (GND) y los otros tres, correspondientes a los colores rojo, verde y azul, a tres salidas de la placa "Arduino" mediante el uso de tres resistencias.

El "sketch" hace cambiar el LED de rojo a verde, de verde a azul y de azul a rojo sucesivamente mediante el envío de valores a las salidas conectadas al LED RGB.

Verzeichnis Botón

El circuito utiliza tres LEDs. Cada uno de ellos tiene su pin negativo conectado a masa (GND) a través de una resistencia y su pin positivo (el más largo) conectado a una salida digital (pines 11, 12 y 13 respectivamente) de la placa "Arduino".

Asimismo, un botón conectado a una entrada digital (pin 2) hace posible el envío de un uno lógico (cinco voltios) a dicha entrada digital mientras es pulsado, y de un cero lógico en caso contrario.

El "sketch" comprueba en cada iteración el estado de la entrada digital utilizada: Si el botón es pulsado y, por tanto, dicha entrada está a valor uno, se asigna un uno lógico a las tres salidas digitales y los tres LEDs conectados a éstas se encienden. Si el botón se deja de pulsar y, por tanto, la entrada digital pasa a valer cero, se asigna un cero lógico a las tres salidas digitales para apagar los LEDs.

Verzeichnis Potenciómetro

El circuito utiliza tres LEDs. Cada uno de ellos tiene su pin negativo conectado a masa (GND) a través de una resistencia y su pin positivo (el más largo) conectado a una salida analógica (pines 9, 10 y 11 respectivamente) de la placa "Arduino".

Asimismo, un potenciómetro conectado a una entrada digital (pin A2) regula la intensidad de brillo de los LEDs, mientras que otro potenciómetro conectado a otra entrada digital (pin A3) controla el período de encendido y apagado. Los valores leídos de las entradas analógicas están comprendidos entre 0 y 1023.

El "sketch" comprueba en cada iteración el estado de las dos entradas digitales. Utiliza directamente el valor leído de la entrada analógica A3 como período de encendido/apagado expresado en milisegundos, y el valor leído de la entrada analógica A2 para regular la intensidad de brillo de los tres LEDs mediante valores comprendidos entre 0 y 255 (el valor de entrada leído se multiplica previamente por un factor de escala).

Verzeichnis Tres LEDs y sonido

El circuito utiliza tres LEDs. Cada uno de ellos tiene su pin negativo conectado a masa (GND) a través de una resistencia y su pin positivo (el más largo) conectado a una salida digital (pines 11, 12 y 13 respectivamente) de la placa "Arduino".

Asimismo, un zumbador piezoeléctrico conectado a una salida digital (pin 10) genera un sonido audible cuando dicha salida genera una onda cuadrada mediante la función tone().

Cada vez que transcurre un cierto tiempo, que inicialmente es de un segundo, disminuye once milisegundos en cada iteración y es controlado por la variable pause, el "sketch" cambia el estado - encendido o apagado - de los LEDs del circuito y el zumbador suena durante los primeros cien milisegundos. Su frecuencia es controlada por la variable pitch, cuyo valor aumenta a partir de 50 Hz, en incrementos sucesivos de 50 Hz, hasta alcanzar los 4000 Hz. Tras sonar el zumbador con esa última frecuencia, ambas variables recuperan sus valores iniciales.

Verzeichnis Pantalla de cristal líquido

El circuito usa una pantalla de cristal líquido (LCD) de 16 caracteres y 2 filas para mostrar un mensaje fijo en la primera y el valor de un contador en la segunda, el cual se incrementa en una unidad cada segundo.

La biblioteca "LiquidCrystal" permite crear un objeto de tipo LiquidCrystal, sobre el cual se invocan los métodos necesarios para posicionar el cursor e imprimir los datos.

En la declaración del objeto LiquidCrystal se indican los pines digitales de la placa Arduino que se utilizarán para la comunicación con la pantalla: 12 (RS), 11 (EN), 5 (D4), 4 (D5), 3 (D6) y 2 (D7).

El pin RS indica si el microcontrolador envía a través de las líneas de datos (D4-D7) caracteres a mostrar u órdenes de control. El pin EN permite sincronizar la transmisión de datos entre el microcontrolador y la pantalla.

Además deben conectarse los siguientes pines de la pantalla: Vss, LED- y R/W a GND, Vcc a 5V, LED+ a 5V mediante una resistencia de 2200 Ohmios y V0 a la salida de un potenciómetro, el cual permitirá regular el nivel de contraste.

Una vez inicializado el objeto LiquidCrystal, el método begin() especifica las dimensiones - número de columnas y filas - de la pantalla. El método print() envía los datos correspondientes para ser mostrados y el método setCursor() sitúa el cursor en la columna y la fila especificadas como parámetros.

Verzeichnis Motor de corriente continua

Los motores de corriente continua tienen un gran consumo y precisan de una alimentación externa, puesto que los 5 V y 40 mA que suministran los pines de la placa Arduino no son suficientes. En este caso se utilizará una pila de 9 V.

Se emplea un transistor MOSFET como amplificador de la señal de salida analógica (entre cero y cinco voltios) procedente del pin 3 de la placa Arduino. El pin del transistor al que se conecta la señal a amplificar se denomina puerta. Un cambio de tensión en la puerta permite crear una conexión entre los otros dos pines (drenador y fuente).

La señal original es amplificada por el transistor para dar como resultado una nueva señal que se suministra a través del drenador, cuya tensión estará comprendida entre cero y nueve voltios. A dicho pin se conecta el cable de tierra del motor. Finalmente, la fuente se conecta a tierra.

Cuanto mayor sea la tensión que se suministra a la puerta, mayor será la corriente que circulará entre el drenador y la fuente. Así se irá reduciendo progresivamente la resistencia entre ambos pines hasta que ésta llegue a ser nula y el motor gire a máxima velocidad.

De este modo, el transistor desacopla el circuito de control del circuito de potencia. Puesto que ambos utilizan diferentes voltajes, las dos tierras deben conectarse entre si ya que los circuitos están interrelacionados.

El diodo "fly-back" que se conecta a los cables del motor permite que la breve corriente de tensión inversa que se genera al dejar de alimentar al motor retorne a éste y no se dirija al transistor. Para ello, el ánodo del diodo debe conectarse a la tierra del motor y el cátodo a la alimentación del mismo.

Por último, el sketch incrementa progresivamente la velocidad de giro del motor hasta llegar a su máximo, y después la va disminuyendo hasta parar el motor.

Verzeichnis Servomotor

Un servomotor es un tipo especial de motor que se mueve a una posición concreta y permanece en la misma hasta que se le hace moverse hacia otra. Normalmente puede rotar hasta 180 grados.

Aunque es posible accionar el servomotor directamente enviándole un número de pulsos de una cierta frecuencia y anchuras variables (PWM), existe una biblioteca para Arduino que permite hacer funcionar un servomotor de un modo más sencillo.

En el circuito de la figura, el cable rojo del servomotor se conecta a la alimentación (5V), el negro a tierra (GND) y el blanco a la salida 6 de la placa Arduino. Asimismo, se conectan tres LEDs a las salidas 9, 10 y 11.

El accionamiento de un potenciómetro genera una salida cuya tensión está comprendida entre 0 y 5V, la cual se conecta a la entrada analógica A2 de la placa Arduino.

Al comenzar a moverse, el servomotor consume más corriente que cuando está en movimiento. La colocación de un condensador de 100 μF entre los pines de alimentación y tierra del servomotor - el cátodo del condensador (raya negra) debe conectarse a tierra - suaviza cualquier cambio de tensión que pueda darse. Los condensadores de desacoplo reducen - o desacoplan - los posibles cambios causados por los componentes del resto del circuito. Asimismo, es conveniente conectar otro condensador a los pines de alimentación y tierra del potenciómetro.

En la función de inicialización (setup()), además de inicializar el monitor serie, los pines de salida para los LEDs (9, 10 y 11) y el pin analógico de entrada para el potenciómetro (A2), al objeto MyServo declarado previamente se le asigna el pin 6 de la placa Arduino, al cual se conecta el dispositivo físico (servomotor) mediante el cable correspondiente.

El bucle de control del programa (función loop()) lee de la entrada analógica A2 el valor de salida del potenciómetro, comprendido entre 0 y 1023. La función map() permite escalar el valor obtenido en un rango entre 0 y 179 grados, el cual servirá para accionar el servomotor mediante el pin 6 de la placa Arduino.

En cada iteración se indica a través del monitor serie el valor de salida del potenciómetro (PotValue) así como el valor de posición enviado a la entrada del servomotor (ServoAngle) mediante una invocación al método write() sobre el objeto MyServo.

También es posible consultar directamente al servomotor acerca de su posición actual invocando el método read() sobre el objeto MyServo, el cual devuelve un valor expresado en grados. Una vez que el servomotor se ha posicionado, los LEDs se encienden para un ángulo igual o superior a 90º.

Finalmente, el retardo de 25 milisegundos proporciona el tiempo necesario al servomotor para que se mueva a su nueva posición - si ésta ha variado con respecto a la que tenía en la iteración anterior - antes de que se le indique otra posición en la siguiente iteración.

Datei Robot Arduino

Robot Arduino

Datei Robot Arduino

Robot Arduino

Thema 4 Datei Curso: Fundamentos de Informática II

Curso: Fundamentos de Informática II