Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
¡Hola, todos! Este es mi proyecto para un control deslizante de cámara de bricolaje, tuve un momento difícil con el mío, pero estoy seguro de que si prestas más atención a los detalles, ¡funcionará!
en teoría, esto debería funcionar completamente
Si eliges hacer esto, ¡espero que lo disfrutes!
Paso 1: Reúna los materiales
Materiales electronicos
- Arduino
- dos 360 servos
- tabla de pan
- resistencias
- botones (preferiblemente 3)
Materiales de construcción
- dos piezas de tablero de espuma
- trozos de madera de taco (puede ser de metal)
- piezas de madera de forma ovalada (consulte la imagen de introducción).
Paso 2: ¡Configuración
esta foto es el diagrama del circuito
¡siga esto y su proyecto funcionará!
Paso 3: ¡Montaje de la placa de pruebas
- En primer lugar, conecte el positivo y la tierra a la placa de pruebas.
- en segundo lugar, conecte los dos servos … y tenga dos cables a tierra y positivo, y otro al pin que elija. (tenga en cuenta que el código tendrá los pines que elegí).
- luego ensamble sus botones … recuerde conectar a los pines de su elección, pero el código no funcionará si no usa los pines que elegí. conecte los botones a tierra también.
- y use una resistencia de 220.
- por último, si desea utilizar un monitor LCD, deberá conectar 2 pines a la entrada analógica y un cable al terminal positivo.
Paso 4: ¡El código Arduino
#incluir #incluir #incluir
LiquidCrystal_I2C lcd (0x27, 16, 2); // establece la dirección LCD en 0x27 para una pantalla de 16 caracteres y 2 líneas
Servo servoLeft; // Definir servo izquierdo Servo servoRight; // Definir el servo derecho
const int startbut = 8; // pin para startbut (startbutton) const int forwardbut = 12; // pin para forwardbut (botón de avance) const int reversebut = 13; // pin para reversebut (reversebutton) int tim = 500; // el valor del tiempo de retardo int flag = 0; int count = 0;
char array1 = "bienvenido"; // la cadena para imprimir en la pantalla LCD ("bienvenido") char array2 = "empujar izquierda = IZQUIERDA, derecha = DERECHA!"; // la cadena para imprimir en la pantalla LCD ("empujar izquierda = IZQUIERDA, derecha = DERECHA")
configuración vacía () {servoLeft.attach (10); // Establece el servo izquierdo en el pin digital 10 servoRight.attach (9); // Establece el servo derecho en el pin digital 9 servoLeft.write (90); // establece los servos a 90 grados servoRight.write (90); retraso (100);
// convierte el pin en entradas pinMode (startbut, INPUT); // inicializar startbut (startbutton) como entrada pinMode (reversebut, INPUT); // inicializar el reversebut (reversebutton) como entrada pinMode (forwardbut, INPUT); // inicializar el botón forwardbut (forwardbutton) como entrada
}
void loop () {// Pruebas de movimiento en bucle // código para el monitor LCD if (flag == 1 && count == 0) {count = 1; lcd.init (); // inicializa el lcd lcd.backlight (); // abre la luz de fondo
lcd.setCursor (15, 0); // coloca el cursor en la columna 15, línea 0 para (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Desplaza el contenido de la pantalla un espacio a la izquierda. lcd.print (matriz1 [contador de posiciones1]); // Imprime un mensaje en la pantalla LCD. retraso (tim); // espera 250 microsegundos} lcd.clear (); // Borra la pantalla LCD y coloca el cursor en la esquina superior izquierda. lcd.setCursor (15, 1); // coloca el cursor en la columna 15, línea 1 para (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Desplaza el contenido de la pantalla un espacio a la izquierda. lcd.print (matriz2 [contador de posiciones]); // Imprime un mensaje en la pantalla LCD. retraso (tim); // espera 250 microsegundos} lcd.clear (); // Borra la pantalla LCD y coloca el cursor en la esquina superior izquierda. } /////////////////////////////////////////////////// //////////////////////////////////////////////////// ///////////////////////////////////////
/ comprobar si se presionaron los botones if (digitalRead (startbut) == 1) {flag = 1; // variable de marca para que el botón comience}
if (flag == 1) {if (digitalRead (reversebut) == HIGH) // reversebut presionado activará un servo {reverse (); // variable inversa para reversebutton} else if (digitalRead (forwardbut) == HIGH) // forwardbut presionado activará un servo {forward (); // variable de avance para el botón de avance} else {detener (); // detener variable para detener el movimiento de los servos cuando no se presionan los botones}}
}
// Rutinas de movimiento para avance, retroceso y parada void forward () {// comando de avance servoLeft.write (0); // dirección en la que giran los servos servoRight.write (180); } void stop () {// comando de parada servoLeft.write (90); // detiene ambos servos en el mismo lugar, de lo contrario estarían en diferentes posiciones servoRight.write (90); } void reverse () {// comando inverso servoLeft.write (180); // los servos se activan en dirección opuesta servoRight.write (0); }
¡Aquí está el código del éxito! después de haber configurado su arduino, ¡todo debería funcionar! ¡y disfrutar!
si no funciona, asegúrese de mirar hacia atrás en este instructivo y verifique todo.