Advertisement
KRITSADA

POP-XT with ZX-RELAY16 and SENSOR

Feb 25th, 2016
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.76 KB | None | 0 0
  1. #include <popxt.h>
  2. #include <gp2d120_lib.h>        // Include GP2D120 sensor library
  3. #include "Wire.h"
  4. #define ADDR     0x20           //seven bit address
  5. #define GP0      0x00           // register addresses
  6. #define GP1      0X01
  7. #define IODIR0   0x06
  8. #define IODIR1   0x07
  9. int raw,dist,light;
  10. int BW=180;
  11. void readSensor(){  
  12.     dist=getdist(20);
  13. }
  14.  
  15. /*void relay16(byte CMD, byte VAL){
  16.   Wire.beginTransmission(0x20);     // เริ่มต้นสื่อสาร
  17.   Wire.write(CMD);                  // ส่งตำแหน่งรีจิสเตอร์ที่ต้องการติดต่อ
  18.   Wire.write(VAL);                  //  ส่งค่าไปยังรีจิสเตอร์ที่ต้องการ
  19.   Wire.endTransmission();           // หยุดการสื่อสาร
  20. }*/
  21.  
  22. void setup(){
  23.   setTextSize(2);
  24.    glcd(1,1,"Press OK");
  25.    sw_ok_press();
  26.    glcdClear();
  27.    glcd(1,1,"Start");
  28.    Wire.begin();
  29.   /*relay16(IODIR0, B00000000);     // GP0 pins are outputs  
  30.   relay16(IODIR1, B00000000);       // GP1.0 - GP1.3 are inputs
  31.  
  32.   relay16(GP0,0x01);                //R1,R2,R3 ติดตลอด
  33.   sleep(10000);
  34.   relay16(GP0,0x00); */
  35. }
  36. void loop(){
  37.    relay16(IODIR0, B00000000);     // GP0 pins are outputs  
  38.    relay16(IODIR1, B00000000);     // GP1.0 - GP1.3 are inputs
  39.    raw=analog(2);
  40.    dist=getdist(2);    
  41.    light=analog(6);
  42.     if(dist<20){
  43.          relay16(GP0,0x05);        
  44.          sleep(3000);
  45.          relay16(GP0,0x00);
  46.          sleep(1000);
  47.          ao();
  48.       }
  49.    else if(light>BW){
  50.          relay16(GP1,0x02);        
  51.          sleep(3000);
  52.          relay16(GP1,0x00);
  53.          sleep(1000);
  54.          ao();
  55.    }
  56.    else if(in(18)==0){ //analog 18 sound
  57.          relay16(GP1,0x01);        
  58.          sleep(3000);
  59.          relay16(GP1,0x00);
  60.          sleep(1000);
  61.          ao();
  62.     }
  63.   else if(in(21)==0){             // Left switch is attacked
  64.           relay16(GP0,0x09);        
  65.           sleep(3000);
  66.           relay16(GP0,0x00);
  67.           sleep(1000);  
  68.           ao();
  69.       }
  70.   else if(in(23)==0){             // Right swtich is attacked
  71.          relay16(GP0,0x06);        
  72.          sleep(3000);
  73.          relay16(GP0,0x00);
  74.          sleep(1000);
  75.          ao();
  76.       }
  77.   else{
  78.           ao();
  79.       }
  80. }
  81. void relay16(byte CMD, byte VAL){
  82.   Wire.beginTransmission(ADDR);  // เริ่มต้นสื่อสาร
  83.   Wire.write(CMD);               // ส่งตำแหน่งรีจิสเตอร์ที่ต้องการติดต่อ
  84.   Wire.write(VAL);               //  ส่งค่าไปยังรีจิสเตอร์ที่ต้องการ
  85.   Wire.endTransmission();        // หยุดการสื่อสาร
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement