- Portada
- Fundamentos de Arduino
- Alimentación de circuitos y dispositivos
- Electrónica básica
-
Fundamentos de programación Arduino
-
Introducción a la Programación de Arduino
-
Configuración y descripción de mBlock
-
Configuración del IDE Arduino
-
Descripción del IDE Arduino
-
Estructura de un programa
-
Tipos de datos
-
Operadores
-
Sintaxis
-
Principales funciones Arduino
-
Principales funciones en Bloques
-
Actividad 2
-
Actividad 3
-
Actividad 4
-
Actividad 5
-
Estructuras de control
-
Actividad 6
-
Actividad 7
-
Actividad 8
-
Actividad 9
-
Comunicación Serie
-
Monitor Serial
-
Actividad 10
-
Recibir por Serie
-
Actividad 11
-
Arrays
-
Actividad 12
-
Extensiones de mBlock
-
Librerías en Arduino IDE
-
Cuestionario Fundamentos de programación Arduino10 xp
-
-
Componentes de uso típico
-
El Potenciómetro
-
Actividad 13
-
El Zumbador
-
Actividad 14
-
Actividad 15
-
La Fotoresistencia
-
Actividad 16
-
El Transistor
-
Motores DC
-
Actividad 17
-
Puente en H
-
Actividad 18
-
Sensor de Temperatura Analógico
-
Actividad 19
-
Sensor de Temperatura Digital
-
Actividad 20
-
El Servomotor
-
Actividad 21
-
Sensor de proximidad por ultrasonidos
-
Actividad 22
-
Displays 7 Segmentos
-
Actividad 23
-
Actividad 24
-
Pantallas LCD
-
Actividad 25
-
Relés
-
Actividad 26
-
Cuestionario Componentes de uso típico10 xp
-
- Proyecto final
- Cuestionario Final
Actividad 18
Actividad 18

Control completo de un motor DC
El objetivo de este ejercicio es poder controlar totalmente un motor DC haciendo uso de los Puente en H y el driver L293D incorporado en el kit que emplea este tipo de tecnología. Vamos conectar el circuito integrado como indica el esquema a continuación y programar el Arduino para establecer distintas velocidades en ambos sentidos de giro del motor:

Solución en C/C++
void setup() {
void loop() {
// Se definen los pines que se van a utilizar
#define vel 9
#define Gir1 10
#define Gir2 11
void setup() {
// Se configuran los pines como salidas
pinMode(vel,OUTPUT);
pinMode(Gir1,OUTPUT);
pinMode(Gir2,OUTPUT);
// Se apagan todas las salidas
digitalWrite(vel,LOW);
digitalWrite(Gir1,LOW);
digitalWrite(Gir2,LOW);
}
void loop() {
// Primero se va a seleccionar un sentido de giro
digitalWrite(Gir1,HIGH);
digitalWrite(Gir2,LOW);
// Despues se acelera de forma progresiva
for(int i=0;i<256;i++){
analogWrite(vel,i);
delay(20);
}
// Despues se frena progresivamente
for(int i=255;i>=0;i--){
analogWrite(vel,i);
delay(20);
}
// Ahora se cambia el sentido de giro de los motores
digitalWrite(Gir1,LOW);
digitalWrite(Gir2,HIGH);
// Despues se acelera de forma progresiva
for(int i=0;i<256;i++){
analogWrite(vel,i);
delay(20);
}
// Despues se frena progresivamente
for(int i=255;i>=0;i--){
analogWrite(vel,i);
delay(20);
}
// Se apagan los motores
digitalWrite(Gir1,LOW);
digitalWrite(Gir2,LOW);
// Se espera un tiempo para empezar de nuevo la secuencia
delay(3000);
}
| Vistas | |
|---|---|
| 12 | Número de vistas |
| 12 | Vistas de miembros |
| 0 | Vistas públicas |
| Acciones | |
|---|---|
| 0 | Gustos |
| 0 | No me gusta |
| 0 | Comentarios |
Compartir por correo
Por favor iniciar sesión para compartir esto webpage por correo.
