วันพุธที่ 27 พฤษภาคม พ.ศ. 2558

วันที่ 8 ของการฝึกงานที่ FIBO

1.ตอนเช้าผมเขียนโปรแกรมคอนโทรลสเต็ปมอเตอร์แต่ความสามารถผมยังไม่ถึงเลยจำเป็นต้องหยุดไวก่อนครับแต่ความพยายามให้มากกว่านี้ครับผมคึกษาที่
     http://www.arduinothai.com/product/271/cnc-shield-v3
     http://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/
2.ตอนบ่ายอาจารย์ให้ทำคำสั่ง arduino รับค่าจาก VR แล้วให้แสดงที่ 7-segment ในหัวข้องที่ว่า VR อ่านค่าได้ที่ 0-1023 แต่อาจารย์ให้แสดงผมที่ 7-segment เป็น 0-99 แล้วให้ทำ ผมจึงได้แนวคิดที่ว่าต้องทำให้มันยาบขึ้นโดยค่า VR ที่ได้มา เป็นค่า 0-1023 มี 1024 จำนวนทำยังไงถึงจะไปแสดงเป็น 0-99 โดยมี 100 จำนวน ผมจึงแบ่ง 1024 เป็น 100 ส่วน จะได้ ค่าแสดงผลที่ 7-segment มีค่าเป็น 1 โดยค่า VR จะอยู่ที่ 10.33 แล้วอาจารยืให้อธิบายให้อาจารย์เข้าใจทำเอาผมนั่งทบทวนอยู่นายเลยครับโดย
หน้าตาของโปรแกรมจะประมาณนี้ครับ
int poten = A3; //analog pin 0 int A = 6; int B = 7; int C = 8; int D = 9; int E = 10; int F = 11; int G = 12; //pin6 to pin12 is A-G int CO1 = 5; int CO2 = 4; int CO3 = A2; //pin4 5 และ A2 คือให้ตัวแปล CO1-CO3 const int segs[7] = { A, B, C, D, E, F, G }; const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101,0b1111101, 0b0000111, 0b1111111, 0b1101111 }; int digit1 = 0; int digit2 = 0; int digit3 = 0; void setup() { Serial.begin(9600); //อ่านค่า LDR pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(CO1, OUTPUT); pinMode(CO2, OUTPUT); pinMode(CO3, OUTPUT); //สั่ง A-G และ CO1-CO3 เป็น OUTPUT } void loop() { int VR = analogRead(poten); //อ่านค่า LDR แล้วไปเก็บในLDRReading VR=VR/113.66; //ให้ VRหาร10.33เพื่อให้ค่ามันอยู่ที่99เพื่อจะนำไปแสดงผล lightDigit3(numbers[digit3]); //เรียกใช้ฟังก์ชัน lightDigit3 ที่อยู่ด้านล่าง delay(5); lightDigit2(numbers[digit2]); //เรียกใช้ฟังก์ชัน lightDigit2 ที่อยู่ด้านล่าง delay(5); lightDigit1(numbers[digit1]); //เรียกใช้ฟังก์ชัน lightDigit1 ที่อยู่ด้านล่าง delay(5); digit3 = VR%10; //เอาค่าเศษที่ได้มาแสดง เช่น 1หาร10 =0.1 เอา1มาแสดง digit2 = (VR%100)/10; digit1 = (VR%1000)/100; //ได้ค่าVRนำมาคำนวนเพื่อแสดงออก segment แต่ละตัว } void lightDigit1(byte number) { //แสดง segment ตัวที่3 digitalWrite(CO1, HIGH); digitalWrite(CO2, HIGH); digitalWrite(CO3,LOW); Segments(number); } void lightDigit2(byte number) { //แสดง segment ตัวที่2 digitalWrite(CO1, HIGH); digitalWrite(CO2, LOW); digitalWrite(CO3, HIGH); Segments(number); } void lightDigit3(byte number) { //แสดง segment ตัวที่1 digitalWrite(CO1, LOW); digitalWrite(CO2, HIGH); digitalWrite(CO3,HIGH); Segments(number); } void Segments(byte number) { for (int i = 0; i < 7; i++) { int bit = bitRead(number, i); digitalWrite(segs[i], bit); } }
3.อาจารย์ได้พาพี่ไนท์ไปเทียบราค่าสินค่าผมจึงได้ตามไปด้วนครับซึ่งอาจารย์ได้พาเที้ยวชมสินค่ามากมายเลยครับอาจารย์ใจดีมากเลยครับพาเที้ยวแถมยังเลี้ยงข้าวอีกด้วยครับมีขนมครกอีกด้วยครับ
ผมได้รู้ว่าสิ่งของยิ่งขยันเดินยิ่งราคาถูกครับ

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

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