วันพฤหัสบดีที่ 27 กุมภาพันธ์ พ.ศ. 2563

Home work

งานที่ 10

       ไมโครคอนโทรลเลอร์ เป็นอุปกรณ์ชิปไอซีพิเศษชนิดหนึ่ง ที่เราสามารถเขียนโปรแกรม
เพื่อควบคุมการทำงานตามที่ต้องการได้

ส่วนประกอบ

-หน่วยประมวลผล
-หน่วยความจำชั่วคราว (RAM)
-หน่วยความจำถาวร (ROM)
-พอร์ตอินพุต,เอาท์พุต


การปรยุกต์ใช้ Microcontroller กับ arduino
    
   IC 74HC595
            ไอซี 74HC595 เป็นไอซีเลื่อนบิต เมื่อมีการป้อนข้อมูลเข้าไปใหม่ บิตจะถูกเลื่อนไปตามข้อมูลที่ป้อน มีขาทั้งหมด 16 ขา เป็นขาเอาต์พุตที่ควบคุมได้ทั้งหมด ขา ตั้งแต่ Q0 Q1 Q2 ... Q7 และมีขาที่ใช้สำหรับการควบคุม อีก ขา

การควบคุมการทำงานไอซี 74HC595

การควบคุมการส่งข้อมูลเพื่อเปลี่ยนแปลง Q0 - Q7 มีขั้นตอนดังนี้
Step 1 เซ็ตให้ขา ST_CP มีสถานะเป็น LOW
Step 2 เซ็ตให้ขา DS เป็นข้อมูลบิตนั้นๆ
Step 3 เซ็ตให้ขา SH_CP มีสถานะเป็น HIGH
Step 4 หน่วงเวลา
Step 5 เซ็ตให้ขา SH_CP มีสถานะเป็น LOW
Step 6 หน่วงเวลา
Step 7 เริ่มกลับไปทำ Step 2 จนครบหมดทุกบิต
Step 8 เซ็ตให้ขา ST_CP มีสถานะเป็น HIGH

การใช้งานจริงกับหลอด LED


         Arduino จะมีฟังก์ชั่น shiftOut() สำเร็จรูปอยู่แล้ว ทำให้สามารถข้ามขั้นตอนตั้งแต่ Step 2 ไปจนถึง Step 7 ได้เลย ทำให้ส่วนโค้ดจริงๆที่ใช้สำหรับส่งข้อมูลไปให้ไอซีมีแค่ส่วนนี้
  
  void DataOut(byte data) {
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, data);
  digitalWrite(latchPin, HIGH);
}
           
         ตัวอย่างโค้ดด้านล่างนี้เป็นโค้ดไฟวิ่งจากขวาไปซ้ายครั้งละดวง โดยใช้ชนิดตัวแปรเป็น byte แล้วเลื่อนบิตไปเรื่อยๆ

int latchPin = 8; // ST_CP
int clockPin = 12; // SH_CP
int dataPin = 11; // DS

byte tmp;

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  digitalWrite(latchPin, HIGH);
}

void loop() {
  if (tmp==0||tmp==0x80) tmp=0x01;
  else tmp=tmp<<1;
  DataOut(tmp);
  delay(500);
}

void DataOut(byte data) {
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, data);
  digitalWrite(latchPin, HIGH);
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

งานที่2

 เกลียว ชนิดและส่วนต่างๆของเกลียว เกลียว ( Thread)  หมายถึงสันหรือร่องที่เกิดขึ้นบนผิวงานวนไปรอบ ๆจะซ้ายหรือขวาก็ไดด้วยระยะทางที่สม่ำเสมอ เ...