vmh

Dependencies:   mbed

main.cpp

Committer:
wonner163
Date:
2017-12-11
Revision:
0:4562b55bbb43
Child:
1:b4814760d8ee

File content as of revision 0:4562b55bbb43:

#include "mbed.h"
#include "ColorMbed.h"
#include "TextLCD.h"

ColorMbed dotmatrix;
Serial bt(PA_15, PB_7);
Serial pc(D1,D0);


I2C i2c_lcd(D14,D15); // SDA, SCL
TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780); // I2C bus, PCF8574 Slaveaddress, LCD Type, Device Type 


int main(void)
{
    int ch;
    int x=0;
    int x0=0;
    int x1=0;
    int x2=0;
    int x3=0;
    int x4=0;
    int x5=0;
    int x6=0;
    int x7=0;
    int x8=0;
    int amount =0;
    int stateprint1 = 0;
    int stateprint2 = 0;
    int stateprint3 = 0;
    int stateprint4 = 0;
    int stateprint5 = 0;
    int stateprint6 = 0;

  // uint8_t rgb[3] = {255,255,100};
  uint8_t rgbready[3] = {100,100,100};   //เริ่มต้นสีโรสโกล
  uint8_t green[3] = {0,255,0};        //ไฟเขียว
  uint8_t red[3] = {0,0,100};       //ไฟเฟล:ไม่ถึงองศาที่ต้องการ 
  uint8_t yellow[3] = {0,150,200};  // ไฟสีเหลือง
  
  
  
  uint8_t tast[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; //เทสไฟติดเต็มแผ่น 
  uint8_t complete[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF}; //สำเร็จติดสองแถว
  uint8_t Ncomplete[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF}; //ไม่สำร็จติดสองแถว
  
  
  
  
  
  
  //คิดว่าไม่น่าใช้ 
 /*uint8_t pic[8] = {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00};  // ติด1ดวง
  uint8_t pic2[8] = {0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00}; // ติด 2 ดวง
  uint8_t pic3[8] = {0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00};
  uint8_t pic4[8] = {0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00};
  uint8_t pic5[8] = {0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00};
  uint8_t pic6[8] = {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00};
  uint8_t pic7[8] = {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80};*/
  
  
  
  
  
  
  
  // ระดับ left
  uint8_t greenleft[8] = {0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00};
  uint8_t yellowleft[8] = {0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x00};
  uint8_t redleft[8] = {0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80};
    // right 
  uint8_t greenright[8] = {0x00,0x00,0x00,0x0,0x0,0x00,0x00,0x18};
  uint8_t yellowright[8] = {0x00,0x00,0x0,0x00,0x00,0x00,0x00,0x24};
  uint8_t redright[8] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC3};
  // เลข 1-30
  uint8_t zero[8] = {0x1C,0x14,0x14,0x14,0x14,0x14,0x1C,0x00};
  uint8_t one[8] = {0x1C,0x08,0x08,0x08,0x08,0x18,0x08,0x00};
  uint8_t two[8] = {0x1C,0x10,0x10,0x1C,0x04,0x04,0x1C,0x00};
  uint8_t three[8] = {0x1C,0x04,0x04,0x1C,0x04,0x04,0x1C,0x00};
  uint8_t four[8] = {0x04,0x04,0x04,0x1C,0x14,0x14,0x14,0x00};
  uint8_t five[8] = {0x1C,0x04,0x04,0x1C,0x10,0x10,0x1C,0x00};
  uint8_t six[8] = {0x1C,0x14,0x14,0x1C,0x10,0x10,0x1C,0x00};
  uint8_t seven[8] = {0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x00};
  uint8_t eight[8] = {0x1C,0x14,0x14,0x1C,0x14,0x14,0x1C,0x00};
  uint8_t nine[8] = {0x1C,0x04,0x04,0x1C,0x14,0x14,0x1C,0x00};
  uint8_t ten[8] = {0x3F,0x15,0x15,0x15,0x15,0x35,0x17,0x00};
  uint8_t eleven[8] = {0x3F,0x12,0x12,0x12,0x12,0x36,0x12,0x00};
  uint8_t twelve[8] = {0x3F,0x14,0x14,0x17,0x11,0x31,0x17,0x00};
  uint8_t thirteen[8] = {0x3F,0x11,0x11,0x17,0x11,0x31,0x17,0x00};
  uint8_t fourteen[8] = {0x39,0x11,0x11,0x17,0x15,0x35,0x15,0x00};
  uint8_t fifteen[8] = {0x3F,0x11,0x11,0x17,0x14,0x34,0x17,0x00};
  uint8_t sixteen[8] = {0x3F,0x15,0x15,0x17,0x14,0x34,0x17,0x00};
  uint8_t seventeen[8] = {0x39,0x11,0x11,0x11,0x11,0x31,0x17,0x00};
  uint8_t eightteen[8] = {0x3F,0x15,0x15,0x17,0x15,0x35,0x17,0x00};
  uint8_t ninteen[8] = {0x3F,0x11,0x11,0x17,0x15,0x35,0x17,0x00};
  uint8_t twenty[8] = {0x3F,0x25,0x25,0x3D,0x0D,0x0D,0x3F,0x00};
  uint8_t twone[8] = {0x3F,0x22,0x22,0x3A,0x0A,0x0E,0x3A,0x00};
  uint8_t twtwo[8] = {0x3F,0x24,0x24,0x3F,0x09,0x09,0x3F,0x00};
  uint8_t twthree[8] = {0x3F,0x21,0x21,0x3F,0x09,0x09,0x3F,0x00};
  uint8_t twfour[8] = {0x39,0x21,0x21,0x3F,0x0D,0x0D,0x3D,0x00};
  uint8_t twfive[8] = {0x3F,0x21,0x21,0x3F,0xC,0xC,0x3F,0x00};
  uint8_t twsix[8] = {0x3F,0x25,0x25,0x3F,0xC,0xC,0x3F,0x00};
  uint8_t twseven[8] = {0x39,0x21,0x21,0x39,0x9,0x9,0x3F,0x00};
  uint8_t tweight[8] = {0x3F,0x25,0x25,0x3F,0xD,0xD,0x3F,0x00};
  uint8_t twnine[8] = {0x3F,0x21,0x21,0x3F,0xD,0xD,0x3F,0x00};
  uint8_t thirty[8] = {0x3F,0xD,0xD,0x3D,0x0D,0x0D,0x3F,0x00};
  
  //องศา 
  uint8_t gound[8] = {0x00,0x00,0x00,0x00,0x00,0x0,0x00,0x81}; //จุดสองจุด
  uint8_t step1[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x40};  //สเต็ปองศา
  uint8_t step2[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x60};
  uint8_t step3[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x70};
  uint8_t step4[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x78};
  uint8_t step5[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x7C};
  uint8_t step6[8] = {0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x7E};
  
  dotmatrix.init();
  
  
  

     do{
        if(bt.readable()){
            ch=bt.getc();
            pc.printf("%d\n",ch);
        }
        if ((ch <=15 and ch >=0) or x==1){
            if (stateprint1 == 0){
                pc.printf("   pass step1   ");
                lcd.cls();
                lcd.printf("   pass step1   ");
                stateprint1 =1;
            }
            
            dotmatrix.display_pic(one,green);
            dotmatrix.display_pic(step1,green);
//            
//                                if (amount==0){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);             
//                                    dotmatrix.display_pic(one,green);
//                                    dotmatrix.display_pic(step1,green);
//                                } 
//                                     
//                                if (amount==1){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(two,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==2){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(three,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                }
//                                 
//                                if (amount==3){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(four,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==4){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(five,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==5){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(six,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==6){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(seven,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==7){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(eight,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==8){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(nine,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                if (amount==9){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(ten,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                }             
                                x=1;
            if((ch <=30 and ch >=16) or x2==1){
                if (stateprint2 == 0){
                    pc.printf("   pass step2   ");
                    lcd.cls();
                    lcd.printf("   pass step2   ");
                    stateprint2 =1;
                }
//                                if (amount==0){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);             
//                                    dotmatrix.display_pic(one,green);
//                                    dotmatrix.display_pic(step1,green);
//                                } 
//                                     
//                                else if (amount==1){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(two,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==2){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(three,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                }
//                                 
//                                else if (amount==3){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(four,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==4){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(five,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==5){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(six,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==6){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(seven,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==7){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(eight,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==8){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(nine,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                } 
//                                
//                                else if (amount==9){
//                                    pc.printf("   amount %d   ",amount);
//                                    lcd.cls();
//                                    lcd.printf("   amount %d   ",amount);      
//                                    dotmatrix.display_pic(ten,green);
//                                    dotmatrix.display_pic(step1,green);
//                                    
//                                }   
                dotmatrix.display_pic(one,green);
                dotmatrix.display_pic(step2,green);
                x2=1;
                if((ch <=45 and ch >=31) or x3==1)
                    {
                    if (stateprint3 == 0){
                        pc.printf("   pass step3   ");
                        lcd.cls();
                        lcd.printf("   pass step3   ");
                        stateprint3 =1;
                        //dotmatrix.display_pic(one,green);
//                        dotmatrix.display_pic(step3,green);

                    }
                    dotmatrix.display_pic(one,green);
                    dotmatrix.display_pic(step3,green);
                    x3=1;
                    if((ch <=60 and ch >=46) or x4==1)
                        {
                        if (stateprint4 == 0){
                            pc.printf("   pass step4   ");
                            lcd.cls();
                            lcd.printf("   pass step4   ");
                            stateprint4 =1;
                                            
                        }
                        dotmatrix.display_pic(one,green);
                        dotmatrix.display_pic(step4,green);
                        x4=1;
                        if((ch <=75 and ch >=61) or x5==1){
                            if (stateprint5 == 0){
                                pc.printf("   pass step5   ");
                                lcd.cls();
                                lcd.printf("   pass step5   ");
                                stateprint5 =1;
        
                            }
                            dotmatrix.display_pic(one,green);
                            dotmatrix.display_pic(step5,green);
                            x5=1;
                        if((ch <=90 and ch >=76) or x6==1){
                                if (stateprint6 == 0){
                                    pc.printf("   pass step6   ");
                                    lcd.cls();
                                    lcd.printf("   pass step6   ");
                                    stateprint6 =1;
            
                                }
                                for (int i = 1; i <= 230; i++)
                                        {        
                                    
                                dotmatrix.display_pic(one,green);
                                dotmatrix.display_pic(step6,green);
                                
                                }
                                x6=1;
                                amount=amount+1;
                                pc.printf("   amount %d   ",amount);       
                                if (amount==1){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 230; i++)
                                        {        
                                        dotmatrix.display_pic(one,green);
                                    }
                                } 
                                     
                                if (amount==2){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(two,green);
                                    }
                                } 
                                
                                if (amount==3){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(three,green);
                                    }
                                }
                                 
                                if (amount==4){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(four,green);
                                    }
                                } 
                                
                                if (amount==5){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(five,green);
                                    }
                                } 
                                
                                if (amount==6){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(six,green);
                                    }
                                } 
                                
                                if (amount==7){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(seven,green);
                                    }
                                } 
                                
                                if (amount==8){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(eight,green);
                                    }
                                } 
                                
                                if (amount==9){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(nine,green);
                                    }
                                } 
                                
                                if (amount==10){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(ten,green);
                                    }
                                } 
                                
                                if (amount==0){
                                    pc.printf("   amount %d   ",amount);
                                    lcd.cls();
                                    lcd.printf("   amount %d   ",amount);      
                                    for (int i = 1; i <= 500; i++){        
                                        dotmatrix.display_pic(two,green);
                                    }
                                } 
                                x=0;
                                x1=0;
                                x2=0;
                                x3=0;
                                x4=0;
                                x5=0;
                                x6=0;
                                stateprint1 = 0;
                                stateprint2 = 0;
                                stateprint3 = 0;
                                stateprint4 = 0;
                                stateprint5 = 0;
                            }
                        }
                    }
                }
            }
        }  
        }while(amount != 10);
                        pc.printf("yeahhhhhhh");
}