Diferència entre revisions de la pàgina «Calculadora Bluetooth»

De Wiket
Salta a la navegació Salta a la cerca
Línia 1: Línia 1:
El programa que hemos llevado a cabo tiene como objetivo la suma de diferentes números. Nuestro proyecto consiste en, el usuario descarga el programa de ArduDroid, por ejemplo, para su teléfono. Con el programa una vez instalado, la acción es la siguiente: el usuario introduce dos números por su pantalla, y si la suma de esos dos números es inferior o igual al numero 9, entonces la muestra en el display.  
+
El programa que hem dut a terme té com a objectiu la suma de diferents nombres. El nostre projecte consisteix en, l'usuari descarrega el programa ArduDroid, per exemple, per al seu telèfon. Amb el programa una vegada instal·lat, l'acció és la següent: l'usuari introdueix dos nombres per la seva pantalla, i si la suma d'aquests dos nombres és inferior o igual al numero 9, llavors  mostra el resultat al display.
 
==Requeriments==
 
==Requeriments==
 
*Placa '''Arduino Uno'''
 
*Placa '''Arduino Uno'''

Revisió del 16:40, 24 maig 2016

El programa que hem dut a terme té com a objectiu la suma de diferents nombres. El nostre projecte consisteix en, l'usuari descarrega el programa ArduDroid, per exemple, per al seu telèfon. Amb el programa una vegada instal·lat, l'acció és la següent: l'usuari introdueix dos nombres per la seva pantalla, i si la suma d'aquests dos nombres és inferior o igual al numero 9, llavors mostra el resultat al display.

Requeriments

  • Placa Arduino Uno
  • Bluetooth (Preferiblement HC-06)
  • 7 Segment Display
  • Protoboard
  • 4 (Bluetooth) + 8 (7 Segment Display) cables
  • Una Resistencia (3 Bandes: Taronja, Blau, Marró; Tolerància: Or)

Esquema

Combinacion.png

Codi

#include <SoftwareSerial.h>
#define segA 2
#define segB 3
#define segC 4
#define segD 5
#define segE 6
#define segF 7
#define segG 8

SoftwareSerial BT1(0,1); 

void setup(){

    Serial.begin(9600);
    BT1.begin(9600);

    for (int i=2;i<9;i++){
        pinMode(i, OUTPUT);
    }
}

void loop(){

      char c;
      char b;
      int n1=10;
      int n2=10;
      int resultat;
    
      if (BT1.available()){
          do{
            
            do{
              c = BT1.read();
            }while(c == NULL);
            
            if(isDigit(c)){
               String S1 = String(c);
               n1 = S1.toInt();
            }
            
          }while(n1>9 || n1<0);

          do{
            
            do{
              b = BT1.read();
            }while(b == NULL);
            
            if(isDigit(b)){
               String S2 = String(b);
               n2 = S2.toInt();
            }
            
          }while(n2>9 || n2<0);
               
          resultat = n1 + n2;

          switch(resultat){
          
              case 0:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, HIGH);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, LOW);
                    break;
               
               case 1:
                    digitalWrite(segA, LOW);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, LOW);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, LOW);
                    digitalWrite(segG, LOW);
                    break;
               
               case 2:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, LOW);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, HIGH);
                    digitalWrite(segF, LOW);
                    digitalWrite(segG, HIGH);
                    break;
               
               case 3:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, LOW);
                    digitalWrite(segG, HIGH);
                    break;
               
               case 4:
                    digitalWrite(segA, LOW);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, LOW);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, HIGH);
                    break;
               
               case 5:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, LOW);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, HIGH);
                    break;
               
               case 6:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, LOW);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, HIGH);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, HIGH);
                    break;  
               
               case 7:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, LOW);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, LOW);
                    digitalWrite(segG, LOW);
                    break;
               
               case 8:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, HIGH);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, HIGH);
                    break;
               
               case 9:
                    digitalWrite(segA, HIGH);
                    digitalWrite(segB, HIGH);
                    digitalWrite(segC, HIGH);
                    digitalWrite(segD, HIGH);
                    digitalWrite(segE, LOW);
                    digitalWrite(segF, HIGH);
                    digitalWrite(segG, HIGH);
                    break;    
                               
               defaul:
                    Serial.write("Error, el resultat ha de trobar-se entre 0-9");
                    break;
          }
      }
       
   delay(200);
}

Imatges

    Display.png