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

 

 


Tema destacado: Estamos en la red social de Mastodon


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

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Calculadora Arduino
« en: 26 Julio 2010, 21:52 pm »

Hola! este es mi primer post de algo serio, y quiero compartirlo con vosotros. Me he animado a empezar a aprender electrónica con arduino y esto es lo que he conseguido hasta ahora. es una calculadora muy simple, tan simple que solo suma y resta jeje pero para empezar no esta mal no? Me gustaría que postrarais lo que veáis mejorable en cuanto a código.

En el arduino tengo montados únicamente una pantalla LCD de 16 pines y tres botones. La pantalla esta puesta tal y como aparece en la web official de arduino. y los botones en los pins 9,8,10.

Código:
#include <LiquidCrystal.h>
int buttonPin1 = 8;
int buttonPin2 = 9;
int buttonPin3 = 10;

int num1;
int num2;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void valor (int * num);
int f_operacion (void);// 1 = "+"   0 = "-"


int f_operacion (void)
{
  int temp;
  temp = 1;
  delay(50);//para que no parpadee
  lcd.clear();
  lcd.setCursor (0,0);
  lcd.print ("escoja operacion:");
  lcd.setCursor(0,1);
  lcd.print("+");
  while (digitalRead(buttonPin3) == LOW)
  {
    if (digitalRead(buttonPin2)==HIGH)
    {
      lcd.clear();
      lcd.setCursor(0,1);
      delay(20);
     
      lcd.print("+");
      delay (200);
      temp = 1;
    }
    if (digitalRead(buttonPin1)==HIGH)
    {
      lcd.clear();
      lcd.setCursor(0,1);
      delay(20);
      lcd.print  ("-");
      delay(200);
      temp = 0;
    }
  }
  return (temp);
}

void setup() {
  lcd.begin(16, 2);
  lcd.print("Calculadora 1.0");
  delay(500);
  pinMode (buttonPin1,INPUT);
  pinMode (buttonPin2,INPUT);
  pinMode (buttonPin3,INPUT);
}


void valor (int *num)
{
  *num = 0;
  while (digitalRead(buttonPin3) == LOW)
  {
    delay(50);//para que no parpadee
    lcd.clear();
    lcd.setCursor (0,0);
    lcd.print ("inserte numero:");
    lcd.setCursor(0,1);
    lcd.print(*num,DEC);
    if (digitalRead(buttonPin2)==HIGH)
    {
      (*num)++;
      delay(200);//para que nos de tiempo de sumar solo uno
    }
        if (digitalRead(buttonPin1)==HIGH)
    {
      (*num)--;
      delay(200);
    }
  }

}

void loop() {
  int opt;
  valor (&num1);
  delay (200);//para que nos de tiempo de quitar el dedo
  opt = f_operacion ();
  delay (200);//para que nos de tiempo de quitar el dedo
  valor (&num2);
  delay(200);
  lcd.clear();
  while (digitalRead(buttonPin3)==LOW)
  {
    if (opt == 1)
    {
      lcd.setCursor(0,1);
      lcd.print(num1+num2);
    }
        if (opt == 0)
    {
      lcd.setCursor(0,1);
      lcd.print(num1-num2);
    }
  }
  delay(200);
}



En línea

Banti

Desconectado Desconectado

Mensajes: 225


NULL


Ver Perfil
Re: Calculadora Arduino
« Respuesta #1 en: 27 Julio 2010, 00:39 am »

Muy lindo code y con comentarios precisos. Excelente che!


En línea

andrexita

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Calculadora Arduino
« Respuesta #2 en: 18 Febrero 2014, 19:39 pm »

disculpa podrias subir el simulador en  proteus con un atmega328 es urgente
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines