Este proyecto utiliza una placa Arduino y 7 servomotores para representar los números del 0 al 9 moviendo los servos a diferentes posiciones. Es ideal para entender cómo manejar múltiples servos y organizar datos para controlarlos.
Objetivo del Proyecto
- Mover 7 servomotores para simular un segmento de pantalla (como en un display de 7 segmentos).
- Cada número del 0 al 9 se representa por posiciones específicas de los servos.
Materiales Necesarios
- Placa Arduino Uno (o similar).
- 7 Servomotores.
- Fuente de alimentación externa (si los servos consumen mucha corriente).
- Cables Dupont para conexiones.
- Protoboard (opcional, para organizar conexiones).
¿Cómo funciona?
- Concepto de los números con servos: Cada servo representa un segmento de un número. Por ejemplo, para el número “0”, algunos servos se mueven a 90° y otros a 0° para dar la forma.
- Control de los servos: El código en Arduino usa una matriz (números) para almacenar las posiciones de cada servo necesarias para formar cada dígito. Al cambiar entre números, los servos se mueven automáticamente a la nueva posición.
- Movimiento de servos: La biblioteca Servo.h permite controlar fácilmente los servos conectados a pines digitales. El comando servo.write(ángulo) establece la posición de cada motor.
- Ciclo de números: En el loop, Arduino recorre los números del 0 al 9 y mueve los servos a las posiciones predefinidas para cada número.
Diagrama de Conexión
- Pines de Arduino: Conectá los pines digitales de Arduino (del 7 al 13 en este caso) a los pines de control de los servos.
- VCC y GND de los servos: Alimentá los servos desde una fuente externa de 5V para evitar sobrecargar el Arduino.
Código Arduino
Usa este código para configurar el proyecto y controlar los servos.
cpp
Copiar código
#include <Servo.h>
// Configuración
#define NUM_SERVOS 7
Servo servos[NUM_SERVOS];
int servoPins[NUM_SERVOS] = {7, 8, 9, 10, 11, 12, 13};
// Posiciones de servos para cada dígito
int numeros[10][NUM_SERVOS] = {
{90, 90, 90, 90, 90, 0, 90}, // 0
{0, 90, 90, 0, 0, 0, 0}, // 1
{90, 90, 0, 90, 90, 90, 0}, // 2
{90, 90, 90, 90, 0, 90, 0}, // 3
{0, 90, 90, 0, 0, 90, 90}, // 4
{90, 0, 90, 90, 0, 90, 90}, // 5
{90, 0, 90, 90, 90, 90, 90}, // 6
{90, 90, 90, 0, 0, 0, 0}, // 7
{90, 90, 90, 90, 90, 90, 0}, // 8
{90, 90, 90, 0, 0, 90, 90} // 9
};
void setup() {
// Inicializa los servos
for (int i = 0; i < NUM_SERVOS; i++) {
servos[i].attach(servoPins[i]);
servos[i].write(90); // Inicializa en posición neutral
}
}
void loop() {
// Recorre los números del 0 al 9
for (int num = 0; num < 10; num++) {
mostrarNumero(num);
delay(1000); // Pausa de 1 segundo entre números
}
}
void mostrarNumero(int num) {
// Mueve los servos a las posiciones correspondientes
for (int i = 0; i < NUM_SERVOS; i++) {
servos[i].write(numeros[num][i]);
}
}

Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!
No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!
Hasta la próxima.