Gracias por compartir tu conocimiento en este video. Utilize un código distinto, en el que, con un while, retengo el estado de la variable mientras el botón sigue pulsado. int const bled = 7, btn = A5; //Constantes de pines int lede; //Estado del led void setup() { pinMode(bled, OUTPUT); pinMode(btn, INPUT); } void loop() { if (digitalRead(btn) == 1 && lede == 0) { //si el boton esta puslado y el led apagado... while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado lede = 1; digitalWrite(bled, lede); //Led encendido } } else if (digitalRead(btn) == 1 && lede == 1) { //si el boton esta pulsado y el led encedido... while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado lede = 0; digitalWrite(bled, lede); //Led apagado } } delay(10); }
Me costó entenderlo con a y b ;-) En el primer IF: - si el led está apagado y el botón pulsado --> enciendes el led y cambias b - sino está encendido y el botón pulsado --> apagas el led y cambias b. Creo que no funciona bien, porque te faltan {} para los 2 IF. El profe lo hace de otra manera: En el primer IF comprueba que acabamos de pulsar el botón, y en el segundo, comprueba el estado del led y lo enciende/apaga.
tan facil y tan complejo, hay que seguir las ordenes para entender, soy electronico y generalmente no hago diagramas de flujo ni pruebas de escritorio, para entender esto y los controladores pid digitales y ls filtros digitales es muy importante hacer todo ese show y otros mas, gracias.
Buenas tardes! Johan gracias por tus videos, estoy terminando el primer año de Tecnicatura en Desarrollo de Software, queremos conectar una cámara OV7670 a un Arduino Mega, y verlo por una pantalla Pantalla Lcd Display Touch 2.4 320x240 Arduino 65k Color Sd. NECESITAMOS AYUDA! Cualquier dato nos es de ayuda, no encontre videos de este contenido y queria daber si podrias ayudarnos con alguna informacion. Muchas gracias!
Una duda, ¿por qué pones en este video el buttonPin en el A0 (analogico) y en el anterior video lo pones en un pin digital? Veo que funciona igualmente con pindigital
La diferencia es que el pin analógico es capaz de leer o emitir señales de 0v a 5v mientras por otro lado los pines digitales son capases de enviar o recibir 0 o 1 (osea hay o no hay)
Pregunta seria, porque inicializamos el monitor serial, sino se utilizo. Yo coloque los estados de los buttonNew Y buttonOld por el monitor y así veo cuando cambia. Aprendí mucho con el video.
Tienes razón, así es más fácil entenderlo. En el primer IF detectamos el momento justo en que pulsamos el botón, y en el segundo IF apagamos/encendemos el led según estaba. 1 1 0 1 (Pulsado Aquí) 0 0 1 0 (Soltado Aquí) 1 1 Y no tengo el kit 😥
muy bueno tus videos. sabes que quiero hacer algo muy parecido. es en vez de poner un led quiero poder controlar un motor paso a paso de 220v (los que tienen las estufas que giran) . pero quiero sumarle un relay para poder controlarlo... como podria hacer eso... gracias
Hola Joseph. Pues todo dispositivo electrónico es susceptible de que le generemos un daño con nuestra energía estática. Yo personalmente de todas las tarjetas que toco, sobo, acaricio y les doy cariño, nunca he dañado ninguna entonces no suelo preocuparme por eso 😅
Hola Johann. Queria pedirte ayuda porque en el codigo que has hecho al compilarlo me da error en la primera funcion en el void loop donde pone buttonNew = digitalRead(buttonPin); y me dice que buttonPin no ha sido declarado in this scope. ¿Cual seria la solucion?. Gracias
@@AlbaroTorrez6661 He probado otra vez el codigo pero al apretar el boton no se queda apagado o encendido, es decir, esta todo el rato encendido y solo se apaga si mantengo el boton apretado. que funcion tengo que poner para que se encienda o se apague solo cuando apreto el boton?
Hola!... buenos tus videos, agradecido.. Una duda, vi que para el led conectaste el pin digital y no los 5v... tengo entendido que los pines digitales entregan tambien 5v... se puede hacer el mismo procedimiento para el boton?,, es decir, conectar otro pin digital al boton en vez de 5v ?... saludos y gracias nuevamente.
Tenia el codigo tal cual y no me funcionaba le pregunte a la ia y me modifico la entrada del pin a pinMode(buttonPin,IMPUT_PULLUP) debe ser por que tengo la version 2.3.4
yo quiero hacer un codigo, veo los primeros videos de encender el led, me falta el boton, entro al video, veo Serial.begin(9600); justo lo que me faltaba!!!😀😀😀😀
Hola, compañeros, aquí les dejo mi solución. int led=8; int button=2; int buttonVal; int val1=1; int val2; void setup () { pinMode(led,OUTPUT); pinMode(button,INPUT); Serial.begin(9600); } void loop () { buttonVal=digitalRead(button); Serial.println(buttonVal); delay(100);
Buen video pero tengo una duda espero alguien me pueda ayudar , yo quiero colocar 2 botones pulsadores en el manubrio de una bici debido a que mi proyecto son luces de giro con Arduino y matriz led en el vídeo los botones van directo al protoboard , como puedo ponerlo en el manubrio?
O puedes comprar uno ya hecho y solo lo conectas a tu placa, los puedes buscar como interruptor para bicicleta eléctrica, estos ya se ajustan al manubrio y tienen botones para luz, direccionales, claxon y encendido, apagado.
Oye disculpa que te comente tarde pero por que será que en mi caso arduino no funcione con "&&" y ese problema al parecer es de siempre 💔por cierto excelente curso, eres un gran mentor 👍
Hola. He visto errores con el && cuando lo combinamos con otros operadores lógicos y no usamos paréntesis. Por ejemplo: if (( (a == 1) || b == 1)) && (c == 1)). Si quieres deja un código corto que te genere el error y cuando pueda le echo un ojo. Saludos
@@JohannPerezE ok muchas gracias, de hecho la práctica que se realizó en el video no funcionó por lo mismo del & & pero lo checo y ya lo comentó va, muchas gracias por contestar 👍
Además de que eres un genio con la programación explicas tan bien que cualquiera podría entender, te felicito por esa virtud 😊
FELICITACIONES!!! ES EL VIDEO MÁS REAL Y HUMANO QUE HE VISTO!!! 👏👏👏👏👏👏👏
Gracias por compartir tu conocimiento en este video. Utilize un código distinto, en el que, con un while, retengo el estado de la variable mientras el botón sigue pulsado.
int const bled = 7, btn = A5; //Constantes de pines
int lede; //Estado del led
void setup() {
pinMode(bled, OUTPUT);
pinMode(btn, INPUT);
}
void loop() {
if (digitalRead(btn) == 1 && lede == 0) { //si el boton esta puslado y el led apagado...
while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado
lede = 1;
digitalWrite(bled, lede); //Led encendido
}
} else if (digitalRead(btn) == 1 && lede == 1) { //si el boton esta pulsado y el led encedido...
while (digitalRead(btn) == 1) { //Mientras el boton sigua pulsado
lede = 0;
digitalWrite(bled, lede); //Led apagado
}
}
delay(10);
}
Buen video, contigo si aprendo y entiendo, no como el profe que tengo "enseñando" esto de mala manera
Muy buen vídeo, intenté hacer ese tipo de interruptor por mi cuenta y no fui capaz, y gracias a tu vídeo lo he conseguido, muchas gracias💪🏻
tu video me ayudara a titularme como técnico en informática, solo agregue más código, muchas gracias 👏👏
Gracias por la clase crack, gracias a ti estoy aprendiendo mucho, saludos y un abrazo.
Me encanta saberlo. Saludos!
buena explicación funcional, me hizo pensar un rato y me salio esto
int a,b;
void setup()
{
pinMode(7,OUTPUT);
pinMode(A0,INPUT);
}
void loop()
{
a=digitalRead(A0);
delay(100);
if(b==0){
if(a==0)
b=1;
digitalWrite(7,1);
}
else{
if(a==0)
b=0;
digitalWrite(7,0);
}
}
Me costó entenderlo con a y b ;-)
En el primer IF:
- si el led está apagado
y el botón pulsado --> enciendes el led y cambias b
- sino está encendido
y el botón pulsado --> apagas el led y cambias b.
Creo que no funciona bien, porque te faltan {} para los 2 IF.
El profe lo hace de otra manera:
En el primer IF comprueba que acabamos de pulsar el botón, y en el segundo, comprueba el estado del led y lo enciende/apaga.
@Johann Perez E, Buenos dias hermano, una consulta se podria simular la accion de pulsar un boton mediante un servomotor?
Ahora ya se como hace el boton de panico para mi proyecto 👌👌
jajaja
tan facil y tan complejo, hay que seguir las ordenes para entender, soy electronico y generalmente no hago diagramas de flujo ni pruebas de escritorio, para entender esto y los controladores pid digitales y ls filtros digitales es muy importante hacer todo ese show y otros mas, gracias.
muy buena explicación
realmente legendario felicitacios por muy buen materual
Buenas tardes! Johan gracias por tus videos, estoy terminando el primer año de Tecnicatura en Desarrollo de Software, queremos conectar una cámara OV7670 a un Arduino Mega, y verlo por una pantalla Pantalla Lcd Display Touch 2.4 320x240 Arduino 65k Color Sd. NECESITAMOS AYUDA! Cualquier dato nos es de ayuda, no encontre videos de este contenido y queria daber si podrias ayudarnos con alguna informacion. Muchas gracias!
Hola Johann, tengo otra forma de Hacerlo:
int buttonPin = 4;
int ledPin = 2;
int buttonRed;
int contador😁😁😁😁 = 0;
void setup() {
// put your setup code here, to run once:
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
buttonRed = digitalRead(buttonPin);
Serial.println(buttonRed);
//delay(100);
if (buttonRed == 0 && contador == 0) {
// if (contador == 0) {
digitalWrite(ledPin, 1);
contador = 1;
buttonRed = 1;
delay(200);
}
if (buttonRed == 0 && contador == 1){
digitalWrite(ledPin, 0);
contador = 0;
delay(200);
}
Una duda, ¿por qué pones en este video el buttonPin en el A0 (analogico) y en el anterior video lo pones en un pin digital? Veo que funciona igualmente con pindigital
La diferencia es que el pin analógico es capaz de leer o emitir señales de 0v a 5v mientras por otro lado los pines digitales son capases de enviar o recibir 0 o 1 (osea hay o no hay)
muy buenas tus clases me encantan sigue así
Gracias por el comentario. Un abrazo :D
Pregunta seria, porque inicializamos el monitor serial, sino se utilizo. Yo coloque los estados de los buttonNew Y buttonOld por el monitor y así veo cuando cambia. Aprendí mucho con el video.
Tienes razón, así es más fácil entenderlo.
En el primer IF detectamos el momento justo en que pulsamos el botón, y en el segundo IF apagamos/encendemos el led según estaba.
1 1
0 1 (Pulsado Aquí)
0 0
1 0 (Soltado Aquí)
1 1
Y no tengo el kit 😥
@juan jose :-D x2 jajja toca usar tinkercad 👌
Sigo sus vídeos con entusiasmo. ¿Podrías aclarar cuál es el valor de resistencia que debemos utilizar? Gracias.
10k
muy bueno tus videos. sabes que quiero hacer algo muy parecido. es en vez de poner un led quiero poder controlar un motor paso a paso de 220v (los que tienen las estufas que giran) . pero quiero sumarle un relay para poder controlarlo... como podria hacer eso... gracias
hola es que al momento de hacer la ultima parte de "buttonOld=buttonNew;" me sale que esta mal. Eres un buen profe muchas gracias.
hola soy nuevo tengo una pregunta para manipular arduino no se ocupa algo como guantes, tapetes oalgun brazalete ?
Hola Joseph. Pues todo dispositivo electrónico es susceptible de que le generemos un daño con nuestra energía estática. Yo personalmente de todas las tarjetas que toco, sobo, acaricio y les doy cariño, nunca he dañado ninguna entonces no suelo preocuparme por eso 😅
Hola Johann.
Queria pedirte ayuda porque en el codigo que has hecho al compilarlo me da error en la primera funcion en el void loop donde pone buttonNew = digitalRead(buttonPin); y me dice que buttonPin no ha sido declarado in this scope. ¿Cual seria la solucion?. Gracias
Lo solucionaste?
No lo solucione, ayuda
int LedPin = 2;
int PulsadorPin = 4;
int EstadoLed = 0;
int EstadoPulsador;
int NuevoEstadoPulsador;
int dt = 100;
void setup(){
pinMode(LedPin,OUTPUT);
pinMode(PulsadorPin,INPUT);
Serial.begin(9600);
}
void loop(){
NuevoEstadoPulsador = digitalRead(PulsadorPin);
Serial.println(NuevoEstadoPulsador);
delay(dt);
if(NuevoEstadoPulsador == 0){
EstadoLed =! EstadoLed;
}
if(EstadoLed == 1){
digitalWrite(LedPin,1);
}
else{
digitalWrite(LedPin,0);
}
EstadoPulsador = NuevoEstadoPulsador;
}
Hola, amigo, revisa este Código y me dices, analízalo bien. Esta es otra solución que le pude dar.
@@AlbaroTorrez6661 Muchas gracias, si me funciono
@@AlbaroTorrez6661 He probado otra vez el codigo pero al apretar el boton no se queda apagado o encendido, es decir, esta todo el rato encendido y solo se apaga si mantengo el boton apretado. que funcion tengo que poner para que se encienda o se apague solo cuando apreto el boton?
Hola!... buenos tus videos, agradecido..
Una duda, vi que para el led conectaste el pin digital y no los 5v... tengo entendido que los pines digitales entregan tambien 5v... se puede hacer el mismo procedimiento para el boton?,, es decir, conectar otro pin digital al boton en vez de 5v ?... saludos y gracias nuevamente.
Gracias por el video 😊
Tenia el codigo tal cual y no me funcionaba le pregunte a la ia y me modifico la entrada del pin a pinMode(buttonPin,IMPUT_PULLUP) debe ser por que tengo la version 2.3.4
yo quiero hacer un codigo, veo los primeros videos de encender el led, me falta el boton, entro al video, veo Serial.begin(9600); justo lo que me faltaba!!!😀😀😀😀
Ayuda, alguien cree que se le puedan agregar mas leds??????
Encontre otra manera de hacerlo:
int pinLed = 8;
int pinV = A0;
int v;
bool pushButton;
int stateButton = 0;
void setup() {
Serial.begin(9600);
pinMode(pinLed, OUTPUT);
pinMode(pinV, INPUT);
}
void loop() {
v = digitalRead(pinV);
if(v == 0){
pushButton = true;
}
if(pushButton){
if(stateButton == 1){
stateButton = 0;
digitalWrite(pinLed, stateButton);
}else{
stateButton = 1;
digitalWrite(pinLed, stateButton);
}
pushButton = false;
}
Serial.println(stateButton);
delay(300);
}
Como puedo prender y apagar un arduino nano que esta conectado a un cargador lipo con un pulsador de estos?
graciasssssss
😭 No entiendo por qué tantas variables. Buttonold?
Necesito ayuda por favor al apagar la luz no me funciona me pueden ayudar por favor.
Hola, compañeros, aquí les dejo mi solución.
int led=8;
int button=2;
int buttonVal;
int val1=1;
int val2;
void setup () {
pinMode(led,OUTPUT);
pinMode(button,INPUT);
Serial.begin(9600);
}
void loop () {
buttonVal=digitalRead(button);
Serial.println(buttonVal);
delay(100);
if(val1==1 && buttonVal==0){
digitalWrite(led,1);
val1=0;
}
else if (val1==0 && buttonVal==0) {
digitalWrite(led,0);
val1=1;
}
}
con un delay (150) funciona mejor. Cualquier modificación me dejan Saber. Estamos aprendiendo.
Buen video pero tengo una duda espero alguien me pueda ayudar , yo quiero colocar 2 botones pulsadores en el manubrio de una bici debido a que mi proyecto son luces de giro con Arduino y matriz led en el vídeo los botones van directo al protoboard , como puedo ponerlo en el manubrio?
Busca cualquier botón que se ajuste a dónde lo vas a colocar, no necesariamente tiene que ser el push como el del vídeo, solo fíjate si es N/O o N/C
O puedes comprar uno ya hecho y solo lo conectas a tu placa, los puedes buscar como interruptor para bicicleta eléctrica, estos ya se ajustan al manubrio y tienen botones para luz, direccionales, claxon y encendido, apagado.
hola te encontre un error en tu codigo el serial.begin(9600) no era necesario
Un truquito para no tener que hacer el "if (ledState == 0){}else{}"
Solo hay que poner:
ledState=abs(ledState -1);
ami medio error por que ?
Oye disculpa que te comente tarde pero por que será que en mi caso arduino no funcione con "&&" y ese problema al parecer es de siempre 💔por cierto excelente curso, eres un gran mentor 👍
Hola. He visto errores con el && cuando lo combinamos con otros operadores lógicos y no usamos paréntesis. Por ejemplo: if (( (a == 1) || b == 1)) && (c == 1)). Si quieres deja un código corto que te genere el error y cuando pueda le echo un ojo. Saludos
@@JohannPerezE ok muchas gracias, de hecho la práctica que se realizó en el video no funcionó por lo mismo del & & pero lo checo y ya lo comentó va, muchas gracias por contestar 👍
@@JohannPerezE oyeeee si era eso, graciassss😅😅😅
int LedPin = 7;
int buttonPin = A0;
int ledState = 0;
int buttonOld = 1;
int buttonNew;
int dt = 100;
void setup() {
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonNew = digitalRead(buttonPin);
delay(dt);
if(buttonNew == 0 && buttonOld == 1){
if (ledState == 0){
digitalWrite(LedPin, 1);
ledState = 1;
}
else{
digitalWrite (LedPin,0);
ledState = 0;
}
}
buttonOld=buttonNew;
}
amigo miro tus videos me gustaria como hacer simulador de ckp y cmp o algun codigo de como hacerlo te agradeceria
gracias bro me ayudo a hacer un robot que me hace un pete
comentario
Tanta caspa,, solo se necesita esto..
void setup()
{
pinMode(13, OUTPUT);
pinMode(2,INPUT);
}
void loop()
{
if ( digitalRead(2)==HIGH )
{
digitalWrite(13, !digitalRead(13));
delay(200);
}
}
complicado,, hay un programa con pic el cual queda sencillo!!!