Foros del Web » Programación para mayores de 30 ;) » C/C++ »

codigo en C de arduino

Estas en el tema de codigo en C de arduino en el foro de C/C++ en Foros del Web. Hola a todos, tengo el siguiente codigo de C para arduino, lo que intento hacer es que cuando yo oprima un boton en la entrada ...
  #1 (permalink)  
Antiguo 15/05/2014, 17:04
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
codigo en C de arduino

Hola a todos, tengo el siguiente codigo de C para arduino, lo que intento hacer es que cuando yo oprima un boton en la entrada digital 1 haga un conteo en un 7segmentos, pero nose que pasa, porque empieza a contar solo:

Código C++:
Ver original
  1. int conteo=0;
  2. byte sieteSegmentos[10][7]={
  3. {1,1,1,1,1,1,0},
  4. {0,1,1,0,0,0,0},
  5. {1,1,0,1,1,0,1},
  6. {1,1,1,1,0,0,1},
  7. {0,1,1,0,0,1,1},
  8. {1,0,1,1,0,1,1},
  9. {1,0,1,1,1,1,1},
  10. {1,1,1,0,0,1,0},
  11. {1,1,1,1,1,1,1},
  12. {1,1,1,1,0,1,1} };
  13.  
  14. void setup(){
  15. for(int i=2;i<9;i++){
  16. pinMode(i,OUTPUT);
  17. }
  18. pinMode(A0,INPUT);
  19. }
  20. void loop(){
  21. if(digitalRead(1)==0){
  22. conteo++;
  23.  
  24. visualizar(conteo);
  25. delay(200);
  26.  if(conteo>9){
  27. conteo=0;
  28. }
  29. }
  30. }
  31.  
  32. void visualizar(int digito){
  33. for(int i=0;i<7;i++){
  34. digitalWrite(i+2,sieteSegmentos[digito][i]);
  35. }
  36. }
  #2 (permalink)  
Antiguo 09/08/2014, 13:43
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: codigo en C de arduino

El problema es que en el setup estableces como input el pin analogico 0 y en el loop intentas leer el boton en el pin 1 digital.
Son dos fallos
1- define el mismo pin de entrada que detectara el boton
2- a no ser de que el boton este conectado a 5V utiliza mejor la funcion analogRead en vez de digitalRead


Lo de que empiece a contar es normal, por que el microcontrolador si no define un puerto lo pone conectado a 0 voltios osea que 0 es lo que devuelve el pin digital 1 y desde que inicia el programa esa variable esta activada.
Si usas analog read podrias poner mas de un boton con analogRead.
En teoria podrias tener hasta 1024 botones, que el la definicion de el conversor analogico digital de 10 bits que incorpora el microcontrolador para convertir medidas.
Si quieres que te ayude comenta y miramos lo que puedes hacer con el arduino.
Que tengo proyectos de ordenadores con salida de video compuesto a 20 Mz por menos de 8 euros, y multitud de proyectos asi.
Un saludo y animo con ello.
__________________
http://www.roglastudios.es

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:18.