Advertisement
learnelectronics

Keystudio MP Shieldv2 DHT11 Modified

May 11th, 2019
1,466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.18 KB | None | 0 0
  1. //------------------------------------
  2. //*                                  *
  3. //*       Keystudio MP Shield v2     *
  4. //*       DHT11 Modified Code        *
  5. //*        by learnelectronics       *
  6. //*                                  *
  7. //*          May, 11, 2019           *
  8. //*                                  *
  9. //*  email:[email protected]     *
  10. //*www.youtube.com/c/learnelectronics*
  11.  
  12. #include "DHT.h"
  13. #define DHTPIN 7
  14. #define DHTTYPE DHT11
  15. DHT dht(DHTPIN, DHTTYPE);
  16.  
  17.  
  18. //defining three pins of 74HC595
  19. int latchPin = 4;//ST_CP
  20. int clockPin = 5;//SH_CP
  21. int dataPin = 2; //DS
  22.  
  23. //defining three key input
  24. int key1 = A1;
  25. int key2 = A2;
  26. int key3 = A3;
  27.  
  28. //buzzer pin
  29. int buzzer = 3;
  30.  
  31. //pin definition of flowing light
  32. int led1 = 13;
  33. int led2 = 12;
  34. int led3 = 11;
  35. int led4 = 10;
  36. int led5 = 9;
  37. int led6 = 8;
  38.  
  39.  
  40. int dat_wei[4]={0x01,0x02,0x04,0x08};    //LED Segment Displays
  41. //showing 1--4
  42. int dat_duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //LED Segment Displays showing 0--9
  43. char i=0;
  44. void setup ()
  45. {
  46.   pinMode(latchPin,OUTPUT);
  47.   pinMode(clockPin,OUTPUT);
  48.   pinMode(dataPin,OUTPUT);
  49.  
  50.   pinMode(key1,INPUT);
  51.   pinMode(key2,INPUT);
  52.   pinMode(key3,INPUT);
  53.  
  54.   pinMode(buzzer,OUTPUT);
  55.  
  56.   pinMode(led1,OUTPUT);
  57.   pinMode(led2,OUTPUT);
  58.   pinMode(led3,OUTPUT);
  59.   pinMode(led4,OUTPUT);
  60.   pinMode(led5,OUTPUT);
  61.   pinMode(led6,OUTPUT);
  62.   for(char i=8;i<14;i++)
  63.    digitalWrite(i,HIGH);    
  64.  
  65.    dht.begin();
  66. }
  67.  
  68. void loop()
  69.  
  70. {
  71.  
  72.  
  73. if(digitalRead(key1)==LOW )
  74.   SMG();                    //testing LED Segment Displays
  75. if(digitalRead(key2)==LOW )
  76.   buzzer_();                //testing buzzer
  77. if(digitalRead(key3)==LOW)
  78.   led_display();            //testing LED
  79. if(digitalRead(key1)==HIGH & digitalRead(key2)==HIGH & digitalRead(key3)==HIGH)  
  80.   analog();                //testing analog input
  81. }
  82.  
  83. void SMG(void)
  84. {
  85.  digitalWrite(latchPin,LOW);                         //clear LED Segment Displays
  86.  shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  87.  shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  88.  digitalWrite(latchPin,HIGH);
  89.  
  90. while(1)
  91.  {
  92.  digitalWrite(latchPin,LOW);
  93.                                                        //MSBFIRST,transmitting binary bit from high to low,74HC595 starts from first piece, and displaces data from Q0 to Q7. If there is data, it will start from the second piece like this.
  94.  shiftOut(dataPin, clockPin, MSBFIRST ,dat_duan[i]);   //data about second piece    
  95.  shiftOut(dataPin, clockPin, MSBFIRST ,dat_wei[i]);    //way of MSBFIRST,data about first piece
  96.  digitalWrite(latchPin,HIGH);
  97.  i++;
  98.  if(i==4){i=0;}
  99.  if(digitalRead(key1)==HIGH)
  100.  {
  101.    digitalWrite(latchPin,LOW);                         //clear LED Segment Displays
  102.    shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  103.    shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  104.    digitalWrite(latchPin,HIGH);
  105.    break;
  106.  }
  107.  }
  108. }
  109.  
  110. void buzzer_(void)
  111. {
  112.  char i;
  113.  
  114.  digitalWrite(latchPin,LOW);                         //clear LED Segment Displays
  115.  shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  116.  shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  117.  digitalWrite(latchPin,HIGH);
  118.  
  119.  while(1)
  120.  {
  121.  for(i=0;i<80;i++)// output a frequency sound
  122.  {
  123.   digitalWrite(buzzer,LOW);// sound
  124.   delay(1);//delay1ms
  125.   digitalWrite(buzzer,HIGH);//not sound
  126.   delay(1);//ms delay
  127.  }
  128.  for(i=0;i<100;i++)// output a frequency sound
  129.  {
  130.   digitalWrite(buzzer,LOW);// sound
  131.   digitalWrite(buzzer,HIGH);//not sound
  132.   delay(2);//2ms delay
  133.  }
  134.  if(digitalRead(key2)==HIGH)
  135.  {
  136.    digitalWrite(latchPin,LOW);                         //clear LED Segment Displays
  137.    shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  138.    shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  139.    digitalWrite(latchPin,HIGH);
  140.    break;
  141.  }
  142.  }
  143. }
  144.  
  145. void led_display()
  146. {
  147. digitalWrite(latchPin,LOW);                         //clear LED Segment Displays
  148. shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  149. shiftOut(dataPin, clockPin, MSBFIRST ,0x00);
  150. digitalWrite(latchPin,HIGH);
  151.  
  152. while(1)
  153. {
  154.  digitalWrite(led1,LOW);
  155.  delay(100);
  156.  digitalWrite(led1,HIGH);
  157.  digitalWrite(led2,LOW);
  158.  delay(100);
  159.  digitalWrite(led2,HIGH);
  160.  digitalWrite(led3,LOW);
  161.  delay(100);
  162.  digitalWrite(led3,HIGH);
  163.  digitalWrite(led4,LOW);
  164.  delay(100);
  165.  digitalWrite(led4,HIGH);
  166.  digitalWrite(led5,LOW);
  167.  delay(100);
  168.  digitalWrite(led5,HIGH);
  169.  digitalWrite(led6,LOW);
  170.  delay(100);
  171.  digitalWrite(led6,HIGH);
  172.  if(digitalRead(key3)==HIGH)
  173.  {
  174.    break;
  175.  }
  176. }
  177. }
  178.  
  179.  
  180. void analog()
  181. {
  182. int val,qian,bai,shi,ge;
  183. val=dht.readTemperature(true);
  184. qian=val/1000;
  185. bai=val%1000;
  186. bai=bai/100;
  187. shi=val%100;
  188. shi=shi/10;
  189. ge=val%10;
  190. digitalWrite(latchPin,LOW);
  191. shiftOut(dataPin, clockPin, MSBFIRST ,dat_duan[qian]);
  192. shiftOut(dataPin, clockPin, MSBFIRST ,0x01);
  193. digitalWrite(latchPin,HIGH);
  194. digitalWrite(latchPin,LOW);
  195. shiftOut(dataPin, clockPin, MSBFIRST ,dat_duan[bai]);
  196. shiftOut(dataPin, clockPin, MSBFIRST ,0x02);
  197. digitalWrite(latchPin,HIGH);
  198. digitalWrite(latchPin,LOW);
  199. shiftOut(dataPin, clockPin, MSBFIRST ,dat_duan[shi]);
  200. shiftOut(dataPin, clockPin, MSBFIRST ,0x04);
  201. digitalWrite(latchPin,HIGH);
  202. digitalWrite(latchPin,LOW);
  203. shiftOut(dataPin, clockPin, MSBFIRST ,dat_duan[ge]);
  204. shiftOut(dataPin, clockPin, MSBFIRST ,0x08);
  205. digitalWrite(latchPin,HIGH);
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement