Guest User

Untitled

a guest
Jan 16th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. /*
  2. code example for useing 4051 Analog Multiplexer.
  3. by lovecoding.blogger.com 2018
  4. */
  5.  
  6. int s0 = 2; //value of select pin at the 4051 (A)
  7. int s1 = 3; //value of select pin at the 4051 (B)
  8. int s2 = 4; //value of select pin at the 4051 (C)
  9.  
  10. //พอร์ต COM
  11. #define dataPin A0
  12.  
  13. // Select bit ตัวเลือกช่องสัญญานของ Analog Multiplexer ที่ต้องการอ่านค่า
  14. /* s2 s1 s0
  15. * 0 0 0 ช่องที่ 0
  16. * 0 0 1 ช่องที่ 1
  17. * 0 1 0 ช่องที่ 2
  18. * 0 1 1 ช่องที่ 3
  19. * 1 0 0 ช่องที่ 4
  20. * 1 0 1 ช่องที่ 5
  21. * 1 1 0 ช่องที่ 6
  22. * 1 1 1 ช่องที่ 7
  23. */
  24. int bit0[8] = {0,1,0,1,0,1,0,1};
  25. int bit1[8] = {0,0,1,1,0,0,1,1};
  26. int bit2[8] = {0,0,0,0,1,1,1,1};
  27.  
  28. void setup() {
  29.  
  30. //กำหนดความเร็วในการรับส่งข้อมูลผ่าน Serial
  31. Serial.begin(9600);
  32.  
  33. // กำหนดสถานะเริ่มต้นของ GPIO s0 s1 s2 ให้เป็น OUTPUT
  34. pinMode(s0,OUTPUT);
  35. pinMode(s1,OUTPUT);
  36. pinMode(s2,OUTPUT);
  37.  
  38. // กำหนดสถานะเริ่มต่นของ GPIO A0 เพื่อรับข้อมูลจาก Analog Multiplexer
  39. pinMode(dataPin,INPUT);
  40.  
  41. }
  42.  
  43. void loop() {
  44.  
  45. // วนลูปเพื่อเก็บข้อมูลจาก Analog Multiplexer ในแต่ละช่องสัญญาน
  46. for(int ch = 0; ch < 8; ch++){
  47.  
  48. /* ตัวเลือกช่องสัญญานของ Analog Multiplexer ที่ต้องการอ่านค่า
  49. * สลับช่องสัญญานโดยการกำหนดลอจิกทางไฟฟ้า(HIGH,LOW) ให้กับ GPIO s0 s1 s2
  50. */
  51. digitalWrite(s0,bit0[ch]);
  52. digitalWrite(s1,bit1[ch]);
  53. digitalWrite(s2,bit2[ch]);
  54.  
  55. delay(20); // หน่วงเวลาเพื่อรอให้ Analog Multiplexer สลับช่องสัญญานเสร็จ
  56.  
  57. // อ่านค่าจาก Analog Multiplexer ในแต่ละช่องสัญญานโดยจะเริ่มตั้งแต่ช่องที่ 0 ถึง 8 และนำมาเก็บไว้ในตัวแปร value
  58. int value = analogRead(dataPin);
  59.  
  60. // แสดงข้อมูลที่อ่านค่าได้จาก Analog Multiplexer ในแต่ละช่องสัญญาน
  61. Serial.print(value);
  62. Serial.print(" ");
  63.  
  64. }
  65. Serial.println(""); //ขึ้นบรรทัดใหม่
  66. }
Add Comment
Please, Sign In to add comment