hola Johann Adicione unas líneas, las cuales previenen que el servo se esfuerce y se dañe, haciendo que el no baje de 0 y en mi caso no suba de 176. if (servoPos >= 0 && servoPos
tengo un servomotor listo para expermientar con arduino... Hice un proyecto con sensor ultrasónico que mide la distancia y la devuelve en una pantala matriz de 8x8 leds... Usé librería de Parola y la tipografía es demasiado grande si uno tiene un solo módulo así que redefiní la tipografía para que entrara en ese espacio... cuando muestra dos caracteres se ve bien pero cuando pasaba de los 99 cm ya no entraba, por lo que hice una nueva tipografía que aparece a partir de ese rango... luego le puse un buzz para avisar que supera el metro... No sirve para nada pero me salió... ahora me entusiasmo con este proyecto que mostraste...gracias
Hola, muy buen video. Tengo 2 consultas: siempre que se alimenten accesorios de Arduino (como los servos y la fotoresistencia) desde una fuente externa ¿Siempre se debe colocar el GND de Arduino a la masa de la fuente externa? ¿Por qué? ¿Como se hace para poder tener el IDE de Arduino con el fondo negro así como lo tenes vos? Muchas gracias.
hola Pablo, porque al utilizar 2 fuentes diferentes y no unimos los negativos una fuente no sabe que existe la otra!! y siempre DEBE ser el negativo. nunca ambas ya q si hay una pequeña diferencia de potencial pondríamos en peligro su integridad, inclusive si tenemos varias fuentes con diferentes tensiones (5,9,12,24V) para que puedan coexistir TODOS los negativos irán juntos.
Ohh ya vas muy adelante en el curso. Cuando un proyecto no te funciona, lo importante es saber buscar la respuesta, o buscar ayuda y entender la solución. No sólo copiarla. Con eso te vuelves un crack. un saludo!
tengo una pregunta: si quiero colocar varias fotoceldas pero estas están en diferente ángulo ¿Cuál seria la sintaxis o forma la cual debería colocar para que mi servo no este dando vuelvas o se dañe por la variación de datos de posición que le llegaría a este?
Con el permiso del profe. Se me ocurre que puedes utilizar delay() al final, para medir la luz y mover el servo cada cierto tiempo. O mejor, dividir cada movimiento en varios pasos. Ej: para mover de 0 a 90 grados, mover a 10-20-30-40-...90. Programarlo sería un poco más difícil, pero no mucho.
@@alejandrozapatasalgado7741 Por si te interesa a ti, o a alguien más jjj No lo he probado, pero debería funcionar. Ya nos contaréis... Arriba del todo iría esto... // Guardamos el último ángulo int servoPosOld = 0; // Elegimos cuántos grados se moverá cada vez int SALTO = 10; El el loop() iría esto... if(servoPos > servoPosOld) { //El Ángulo nuevo es mayor int pasos = (servoPos - servoPosOld) / SALTO; for(int i = 0 ; i < pasos ; i++) { servoPosOld = servoPosOld + SALTO; miServo.write(servoPosOld); delay(dt); } } else if(servoPos < servoPosOld) { //El Ángulo nuevo es menor int pasos = (servoPosOld - servoPos) / SALTO; for(int i = 0 ; i < pasos ; i++) { servoPosOld = servoPosOld - SALTO; miServo.write(servoPosOld); delay(dt); } } if(servoPos != servoPosOld) { // Para cuando la división no es exacta servoPosOld = servoPos; miServo.write(servoPosOld); delay(dt); } //Cuando el Ángulo nuevo es igual, no hacemos nada.
Hola Gustavo. Desafortunadamente un servo de 360 grados no nos da una posición precisa, sólo podemos controlar su dirección y velocidad, mientras que en uno convencional sí podemos determinar su posición en grados. Te recomiendo este video donde explican los servos 360: th-cam.com/video/0oDvQIV4l9c/w-d-xo.html Saludos!
me dice El Sketch usa 4016 bytes (12%) del espacio de almacenamiento de programa. El máximo es 32256 bytes. Las variables Globales usan 231 bytes (11%) de la memoria dinámica, dejando 1817 bytes para las variables locales. El máximo es 2048 bytes. ayuda :,v
Excelente explicación, yo me había ido por lo fácil con lo if-else. Me repito a mi mismo, las matemáticas son necesarias.
hola Johann
Adicione unas líneas, las cuales previenen que el servo se esfuerce y se dañe, haciendo que el no baje de 0 y en mi caso no suba de 176.
if (servoPos >= 0 && servoPos
tengo un servomotor listo para expermientar con arduino... Hice un proyecto con sensor ultrasónico que mide la distancia y la devuelve en una pantala matriz de 8x8 leds... Usé librería de Parola y la tipografía es demasiado grande si uno tiene un solo módulo así que redefiní la tipografía para que entrara en ese espacio... cuando muestra dos caracteres se ve bien pero cuando pasaba de los 99 cm ya no entraba, por lo que hice una nueva tipografía que aparece a partir de ese rango... luego le puse un buzz para avisar que supera el metro... No sirve para nada pero me salió... ahora me entusiasmo con este proyecto que mostraste...gracias
Excelente explicación, me sirve perfectamente para mis clases de domótica. Muchas gracias un gran contenido en español.
Muy bueno el video!! Lo voy a intentar hacer con mi hijo, muchas gracias por compartir!!
Mi hijo se aburre, no se concentra 🤥
Que bien quedó. La manualidad mejoró mucho el proyecto. Queda para los manitas añadir algo de color 🌈
ojala fueras mi profesor de robotica, muy buen video y explicaciones. felicitaciones
Gracias teacher por estos cursos, estan super en serio
Hola Johann, yo si pude lograrlo, utilize una hoja para los cálculos y todo, y aunque tuve algunos problemas al inicio lo logré.
gracias manito... cada día entiendo mucho mas...😊😊😊
Mi canal favorito 🤩
😜
Puedes hacer un seguidor solar, osea que usando un panel solar, siga la dirección del Sol?
efectivamente mi curso favorito
Estan super buenos estos videoos Graciiaas
haz un video programando mas de 3 servos porfaaaaaaaaa
Hola, muy buen video. Tengo 2 consultas: siempre que se alimenten accesorios de Arduino (como los servos y la fotoresistencia) desde una fuente externa ¿Siempre se debe colocar el GND de Arduino a la masa de la fuente externa? ¿Por qué?
¿Como se hace para poder tener el IDE de Arduino con el fondo negro así como lo tenes vos? Muchas gracias.
hola Pablo, porque al utilizar 2 fuentes diferentes y no unimos los negativos una fuente no sabe que existe la otra!! y siempre DEBE ser el negativo. nunca ambas ya q si hay una pequeña diferencia de potencial pondríamos en peligro su integridad, inclusive si tenemos varias fuentes con diferentes tensiones (5,9,12,24V) para que puedan coexistir TODOS los negativos irán juntos.
hola buenas podrias explicar el servo de 360 gracias
La regla de tres simple y la ecuación de la recta tiene alguna relación ??
Reto hecho 💯
Buenas tardes profe, espero se encuentre bien, yo solo colocaria media mano arriba por que me hizo falta algo para poder resolver el proyecto
Ohh ya vas muy adelante en el curso. Cuando un proyecto no te funciona, lo importante es saber buscar la respuesta, o buscar ayuda y entender la solución. No sólo copiarla. Con eso te vuelves un crack. un saludo!
excelente explicación
GENIAL!!
Tengo una pregunta: servoPos debería ser float en vez de int?
Me interesa la respuesta a esta pregunta, si alguien sabe aporte... Gracias
No es necesario ya que 1 grado aveces ni se nota por eso si redondea 1.1 a 2 no hay diferencia
De echo yo puse que estuviera a 1 grado el servo y después a 2 y no se movió
tengo una pregunta:
si quiero colocar varias fotoceldas pero estas están en diferente ángulo ¿Cuál seria la sintaxis o forma la cual debería colocar para que mi servo no este dando vuelvas o se dañe por la variación de datos de posición que le llegaría a este?
¿por que pondrias varias?
profe una pregunta como se puede controlar la velocidad del movimiento del servo? o no se puede?
Con el permiso del profe.
Se me ocurre que puedes utilizar delay() al final, para medir la luz y mover el servo cada cierto tiempo.
O mejor, dividir cada movimiento en varios pasos. Ej: para mover de 0 a 90 grados, mover a 10-20-30-40-...90.
Programarlo sería un poco más difícil, pero no mucho.
@@jujopm.8-p gracias
@@alejandrozapatasalgado7741
Por si te interesa a ti, o a alguien más jjj
No lo he probado, pero debería funcionar.
Ya nos contaréis...
Arriba del todo iría esto...
// Guardamos el último ángulo
int servoPosOld = 0;
// Elegimos cuántos grados se moverá cada vez
int SALTO = 10;
El el loop() iría esto...
if(servoPos > servoPosOld) {
//El Ángulo nuevo es mayor
int pasos = (servoPos - servoPosOld) / SALTO;
for(int i = 0 ; i < pasos ; i++) {
servoPosOld = servoPosOld + SALTO;
miServo.write(servoPosOld);
delay(dt);
}
}
else if(servoPos < servoPosOld) {
//El Ángulo nuevo es menor
int pasos = (servoPosOld - servoPos) / SALTO;
for(int i = 0 ; i < pasos ; i++) {
servoPosOld = servoPosOld - SALTO;
miServo.write(servoPosOld);
delay(dt);
}
}
if(servoPos != servoPosOld) {
// Para cuando la división no es exacta
servoPosOld = servoPos;
miServo.write(servoPosOld);
delay(dt);
}
//Cuando el Ángulo nuevo es igual, no hacemos nada.
Una pregunta amigo mi servo gira 360
y cuando pondo el este código solo da vueltas y vueltas , que puedo hacer.
Hola Gustavo. Desafortunadamente un servo de 360 grados no nos da una posición precisa, sólo podemos controlar su dirección y velocidad, mientras que en uno convencional sí podemos determinar su posición en grados. Te recomiendo este video donde explican los servos 360: th-cam.com/video/0oDvQIV4l9c/w-d-xo.html Saludos!
@@JohannPerezE Gracias .
✋
me dice El Sketch usa 4016 bytes (12%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
Las variables Globales usan 231 bytes (11%) de la memoria dinámica, dejando 1817 bytes para las variables locales. El máximo es 2048 bytes. ayuda :,v
bro no entiendo como va conectado el servo,ayuda.
Si quieres envíame una foto de tu circuito por instagram y trato de encontrar el fallo. Saludos! @johannpereze
@@JohannPerezE ya pude, gracias
Reto hecho.