elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  [problema] programacion para Arduino
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [problema] programacion para Arduino  (Leído 6,022 veces)
juliol34

Desconectado Desconectado

Mensajes: 7



Ver Perfil
[problema] programacion para Arduino
« en: 28 Julio 2010, 21:25 pm »

Hola! antes de nada gracias por intentar ayudar. Espero no equivocarme de lugar, ya que como se trata de un problema en el código de arduino no estoy muy seguro de que sea aquí, aunque el arduino es electrónica jeje

Bueno, aquí va mi problema. En mi arduino tengo tres leds y tres interruptores. Mi problema comienza cuando llamo a la función LedOn (funcion miembro del objeto Button), ya que no se porque no lee lo guardado en LedPin (dato miembro del objeto Button).

Aquí les dejo el código, si se necesita alguna aclaración de alguna función (para que la quiero) pídanla. Espero que me puedan ayudar! gracias!

Código:
class Button
{
  private:
  int ButtonPin;
  int LedPin;
  public:
  Button (void){}
  ~Button (void){}
  void ButtonAsing (int ledpin, int buttonpin);
  void AddButtonPin (int pin){LedPin = pin;}
  void AddLedPin (int pin){ButtonPin = pin;}
  void Reproduction (void);
  void LedOn(void);
};
void Button::ButtonAsing (int ledpin, int buttonpin)
{
  AddButtonPin (buttonpin);
  AddLedPin (ledpin);
}
void Button::Reproduction(void)
{
  LedOn();
}
void Button::LedOn(void)
{
  digitalWrite (LedPin, HIGH);
  delay(2000);
  digitalWrite (LedPin,LOW);
}


void setup()
{
  pinMode (4,INPUT);
  pinMode (2,OUTPUT);
    pinMode (12,INPUT);
  pinMode (6,OUTPUT);
    pinMode (10,INPUT);
  pinMode (5,OUTPUT);
}

void loop ()
{
  Button rojo ;
  Button verde ;
  Button amarillo ;

  rojo.ButtonAsing (2,4);
  verde.ButtonAsing (6,12);
  amarillo.ButtonAsing (5,10);

  rojo.LedOn();
  verde.LedOn();
  amarillo.LedOn();
  delay (8000);
}


En línea

Banti

Desconectado Desconectado

Mensajes: 225


NULL


Ver Perfil
Re: [problema] programacion para Arduino
« Respuesta #1 en: 29 Julio 2010, 01:17 am »

No entiendo nada el codigo.
-Podrias utilizar constantes int para asignar los pines asi no tenes que repetir en el codigo.
-No sabia que Arduino usaba clases.
-TODAS las otras funciones extras DEBEN estar debajo de loop en lo posible.
-Podrias explicar un poco mas que hace el code, si los leds se encienden como pulsadores o de otra manera.


En línea

Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: [problema] programacion para Arduino
« Respuesta #2 en: 29 Julio 2010, 02:52 am »

Tengo una duda:

En tu código se encuentra esto:

  void AddButtonPin (int pin){LedPin = pin;}
  void AddLedPin (int pin){ButtonPin = pin;}

¿Es correcto? Es que, sinceramente, no entiendo muy bien tu código.
En línea

juliol34

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Re: [problema] programacion para Arduino
« Respuesta #3 en: 29 Julio 2010, 13:24 pm »

Tengo una duda:

En tu código se encuentra esto:

  void AddButtonPin (int pin){LedPin = pin;}
  void AddLedPin (int pin){ButtonPin = pin;}

¿Es correcto? Es que, sinceramente, no entiendo muy bien tu código.

Ups ese era el fallo, estaba del reves  :-[ lo e puesto bien y funciona gracias!! La próxima rebusco mucho mejor antes de postear, pero es que no lo veía, gracias!!


No entiendo nada el codigo.
-Podrias utilizar constantes int para asignar los pines asi no tenes que repetir en el código.
-No sabia que Arduino usaba clases.
-TODAS las otras funciones extras DEBEN estar debajo de loop en lo posible.
-Podrias explicar un poco mas que hace el code, si los leds se encienden como pulsadores o de otra manera.

La verdad es que no me explique para nada. Me explico ahora:
-El problema lo tenia en las contantes, que las asignaba con enteros pero no funcionaba, el problema era el que me a solucionado Tokes que ha visto la "incompatibilidad".
-Según tengo entendido el lenguaje de programación del arduino esta basado en C/C++ por lo tanto como en C++ se programa con clases (es lo que me han enseñado), pos lo he echo con clases y funciona ejje  :)
-Ok no lo sabia, no tengo mucha experiencia programando, estoy aprendiendo jeje
-Mas abajo te pongo el código un poco más arreglado, ya que con el problema que tenia era un poco lioso. El código en si no esta terminado, le falta mucho pero voy haciendo pruebas. Los botones aun no los utilizo, y los led se encienden durante 2 segundos cuando se llama a la función LedOn (). La función Reproduction () está aun incompleta le faltan bastante mas cosas. La finalidad del codigo mas arduino es hacer un simon dice , pero en plan casero jeje aunque tengo otro problemilla que aun no e empezado a "investigar", que es hacerlo aleatorio ejeje. Bueno aquí dejo el código:
Código:
class Button
{
  private:
  int ButtonPin;
  int LedPin;
  public:
  Button (int ledpin, int buttonpin);
  ~Button (void){}
  void AddButtonPin (int pin){ButtonPin = pin;}
  void AddLedPin (int pin){LedPin = pin;}
  void Reproduction (void);
  void LedOn(void);
};
Button::Button (int ledpin, int buttonpin)
{
  AddButtonPin (buttonpin);
  AddLedPin (ledpin);
  pinMode (ButtonPin,INPUT);
  pinMode (LedPin,OUTPUT);
  LedOn();
}
void Button::Reproduction(void)
{
  LedOn();
}
void Button::LedOn(void)
{
  digitalWrite (LedPin, HIGH);
  delay(2000);
  digitalWrite (LedPin,LOW);
}


void setup()
{

}

void loop ()
{
  Button rojo (2,4);
  Button verde(6,12) ;
  Button amarillo (5,10);

  rojo.LedOn();
  verde.LedOn();
  amarillo.LedOn();
  delay (8000);
}

En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: [problema] programacion para Arduino
« Respuesta #4 en: 29 Julio 2010, 13:44 pm »

La cuestion es que te has percatado de tu error y has solucionado el problema jeje

Ademas de haber contribuido al foro :)

Saludos
En línea

Banti

Desconectado Desconectado

Mensajes: 225


NULL


Ver Perfil
Re: [problema] programacion para Arduino
« Respuesta #5 en: 29 Julio 2010, 20:16 pm »

Nose ni que hace esa cosa!!! XD

Sinceramente no sabia que Arduino tambien aceptaba clases. Aunque suena un poco al pedo XD

Probe el codigo y me di cuenta que no hace nada con botones.
Entonces te dejo un code para botones pulsadores
Código:
void Button::Boton(void)
{
  if (digitalRead(ButtonPin))
  {
      digitalWrite (LedPin, HIGH);
  }
  else
  {
    digitalWrite (LedPin, LOW);
  }
}
Lo que me molesto fue que hay variables del mismo nombre para distintas funciones (LedPin y ledpin)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ARDUINO PROGRAMACIÓN « 1 2 »
Programación General
Inter-ard 11 6,594 Último mensaje 12 Febrero 2014, 19:04 pm
por Darioo
〔AYUDA 〕 Programacion en Java relacionada con Arduino
Programación General
ReaGz 7 5,129 Último mensaje 28 Octubre 2014, 05:45 am
por ReaGz
Arduino Regalado y Nuevo en el mundo de la programación
Programación C/C++
Mr.CUAKO 1 1,728 Último mensaje 28 Abril 2017, 10:19 am
por MAFUS
clonar programación de arduino nano
Ingeniería Inversa
electrorock 1 6,190 Último mensaje 25 Enero 2018, 02:59 am
por rub'n
Caida de servidor ESP8266 (Programación Arduino)
Programación General
Fox_Neo 3 4,934 Último mensaje 15 Febrero 2018, 18:31 pm
por Fox_Neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines