KRITSADA

ibit with arduino

Aug 28th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.80 KB | None | 0 0
  1. #include <Adafruit_Microbit.h>
  2. #include <Wire.h>
  3. #define Addr 0x48
  4. const int sw_A=5;
  5. const int sw_B=11;
  6. Adafruit_Microbit_Matrix microbit;
  7. #ifndef _ibit_h
  8. #define _ibit_h
  9.  
  10. #define DIR1 13  
  11. #define PWM1 14  
  12. #define DIR2 15  
  13. #define PWM2 16  
  14.  
  15. void fd2(int speed1,int speed2){
  16.   pinMode(DIR1,OUTPUT);pinMode(DIR2,OUTPUT);
  17.   pinMode(PWM1,OUTPUT);pinMode(PWM2,OUTPUT);
  18.   digitalWrite(DIR1,1);analogWrite(PWM1,speed1);
  19.   digitalWrite(DIR2,0);analogWrite(PWM2,speed2);    
  20. }
  21. void bk2(int speed1,int speed2){
  22.   pinMode(DIR1,OUTPUT);pinMode(DIR2,OUTPUT);
  23.   pinMode(PWM1,OUTPUT);pinMode(PWM2,OUTPUT);
  24.   digitalWrite(DIR1,0);analogWrite(PWM1,speed1);
  25.   digitalWrite(DIR2,1);analogWrite(PWM2,speed2);    
  26. }
  27. void sl(int speeds){
  28.   pinMode(DIR1,OUTPUT);pinMode(DIR2,OUTPUT);
  29.   pinMode(PWM1,OUTPUT);pinMode(PWM2,OUTPUT);
  30.   digitalWrite(DIR1,0);analogWrite(PWM1,speeds);
  31.   digitalWrite(DIR2,0);analogWrite(PWM2,speeds);    
  32. }
  33. void sr(int speeds){
  34.   pinMode(DIR1,OUTPUT);pinMode(DIR2,OUTPUT);
  35.   pinMode(PWM1,OUTPUT);pinMode(PWM2,OUTPUT);
  36.   digitalWrite(DIR1,1);analogWrite(PWM1,speeds);
  37.   digitalWrite(DIR2,1);analogWrite(PWM2,speeds);    
  38. }
  39.  
  40. void ao(){
  41.   pinMode(PWM1,OUTPUT);pinMode(PWM2,OUTPUT);
  42.   analogWrite(PWM1,0);
  43.   analogWrite(PWM2,0);    
  44. }
  45. int ADC(int ch){
  46.   int AD[8]={132,196,148,212,164,228,180,244};
  47.   byte dat[2];
  48.   Wire.beginTransmission(Addr);
  49.   Wire.write(AD[ch]);
  50.   Wire.endTransmission();delayMicroseconds(500);
  51.   Wire.requestFrom(Addr,2);
  52.   if(2 <= Wire.available()){
  53.     dat[0]=Wire.read();
  54.     dat[1]=Wire.read();
  55.   }
  56.   return ((dat[0]&0x0F)<<8)|dat[1];
  57. }
  58. int ADC4b(int ch){
  59.   int AD[8]={132,196,148,212,164,228,180,244};
  60.   byte dat[2];
  61.   Wire.beginTransmission(Addr);
  62.   Wire.write(AD[ch]);
  63.   Wire.endTransmission(); delayMicroseconds(500);
  64.   Wire.requestFrom(Addr,1);
  65.   if(Wire.available()){
  66.     dat[0]=Wire.read();
  67.   }
  68.   delay(1);
  69.   return (dat[0]&0x0F);
  70. }
  71. #endif
  72.  
  73.  void setup() {  
  74.   pinMode(sw_A,INPUT);
  75.   Serial.begin(115200);
  76.   Wire.setClock(400000);
  77.   Wire.begin();
  78.   microbit.begin();
  79.   delay(300);
  80. }
  81. void loop(){
  82.   Serial.print(ADC(0));
  83.   Serial.print(" ");
  84.   Serial.print(ADC(1));
  85.   Serial.print(" ");
  86.   Serial.print(ADC(2));
  87.   Serial.print(" ");
  88.   Serial.print(ADC(3));
  89.   Serial.print(" ");
  90.   Serial.print(ADC(4));
  91.   Serial.print(" ");
  92.   Serial.print(ADC(5));
  93.   Serial.print(" ");
  94.   Serial.print(ADC(6));
  95.   Serial.print(" ");
  96.   Serial.print(ADC(7));
  97.   Serial.print(" ");
  98.   Serial.print(ADC4b(0));
  99.   Serial.print(" ");
  100.   Serial.print(ADC4b(1));
  101.   Serial.print(" ");
  102.   Serial.print(ADC4b(2));
  103.   Serial.print(" ");
  104.   Serial.print(ADC4b(3));
  105.   Serial.print(" ");
  106.   Serial.print(ADC4b(4));
  107.   Serial.print(" ");
  108.   Serial.print(ADC4b(5));
  109.   Serial.print(" ");
  110.   Serial.print(ADC4b(6));
  111.   Serial.print(" ");
  112.   Serial.println(ADC4b(7));
  113. }
Add Comment
Please, Sign In to add comment