C for Programming เขา้ ส่บู ทเรียน จดุ ประสงการเรียนรู้ ผ้จู ดั ทา
เป็นค่าคงทท่ี างตรรกะมอี ยู่ดว้ ยกนั 2 ค่าคอืFalse หมายถงึ เป็นเทจ็ ในทางลอจกิ มคี ่าเป็น 0True หมายถงึ เป็นจรงิ ในทางลอจกิ หมายถงึ ค่าทไ่ี มเ่ ท่ากบั 0 เช่น -1,1,2 เป็นตน้เป็นค่าคงทส่ี าหรบั การทางานกบั ขาสญั ญาณดิจทิ ลัhigs ถา้ ขาสญั ญาณถกู ตอ้ งเป็นโหมดอนิ พตุ หมายถงึ ขาสญั ญาณดงั กลา่ วไดร้ บั แรงดนั ไฟฟ้าตง้ั3 โวลดข์ ้นึ ไป แต่ถา้ เป็นโหมดเอาตพ์ ตุ หมายถงึ บอรด์ อารต์ ยุ ในส่งสญั ญาณไฟฟ้า 5 โวลตอ์ อกทางขาสญั ญาณดงั กลา่ ว กลบั หนา้ หลกั
ค่าทค่ี งทส่ี าหรบั กาหนดโหมดของขาสญั ญาณดิจทิ ลั มี 3 ค่าคอื Input เป็นการตงั้ ค่าใหข้ าสญั ญาณมลี กั ษณะเป็น high-impedance เพอ่ื รอรบั สญั ญาณดจิ ทิ ลั จากอปุ กรณภ์ ายนอก เช่น เซนเซอร์ หรือ สวติ ซ์ เป็นตน้ Input pullup ตงั้ ค่าการใชง้ านตวั ตา้ นทานพลู อพั ภายในซปิ atmega ทาใหก้ ารรบั ค่า Output ตง้ั ค่าใหข้ าสญั ญาณมลี กั ษณะเป็น low-impedance ถา้ มสี ถานะ high ขาสญั ญาณจะมกี ระแสไหลสูงสูดสุดถงึ 40 มลิ ลแิ อมแปร์ สามารถขบั หลอด led ใหส้ วา่ งไดแ้ ตไ่ มเ่ พยี งพอ สาหรบั มอเตอรห์ รอื รีเลย์การตงั้ ชอ่ื เพอ่ื กาหนดใหเ้ป็นค่าคงทแ่ี บบตวั เลขจานวนเตม็ สามารถกาหนดเป็นเลขฐานต่างๆ ดงั ตารางท่ี ค-1 กลบั หนา้ หลกั
ตวั ดาเนนิ การ คอื เครอ่ื งหมายทก่ี ระทากบั ขอ้ มลู ชนดิ ต่างๆ แลว้ ทาใหเ้กดิ ผลลพั ธจ์ ากการดาเนนิ การนนั้ มชี นดิ ต่างๆ ดงั น้ีตวั ดาเนินการทางคณิตศาสตร์ (arithmetic operators)ตวั ดาเนินการเปรยี บเทยี บ (comparison operators)ตวั ดาเนินการสาหรบั นิพจณ์บลู นี (Boolean operators)
X=0;Y=0;For (j=0 ; j < 10; j+=2){ x+=j;Y++;}
ตารางท่ี ค-2 ผลการทางานของโปรแกรมตวั อย่างรอบท่ี ตวั แปร y j x 1 10 0 2 22 2 3 34 6 4 46 12 5 58 20 5 6 10 20
คาสงั่ เงอ่ื นไขเพอ่ื การทางานทางใดทางหน่ึงคลา้ ยกบั if…….else โดยเปรยี บเทยี บคา่ จากตวั แปร ถา้ ค่าของตวั แปลตรงกบั ทางเลอื กใดจะทางานตามขน้ั ตอนในทางเลอื กน้ันรูปแบบSwitch (ตวั แปร){Case label;// statementsBreak;Case label;// statementsBreak;Defaul //{optional}
คาสงั่ เงอ่ื นไขเพอ่ื การทางานทางใดทางหน่ึงคลา้ ยกบั if…….else โดยเปรยี บเทยี บค่าจากตวั แปร ถา้ ค่าของตวั แปลตรงกบั ทางเลอื กใดจะทางานตามขน้ั ตอนในทางเลอื กน้ัน Digital Write(LED.LOW); delay(500);รูปแบบ If (digitalRead(sensorpin)) //Switch (ตวั แปร) sensor active LOW{ { BreakCase label; }// statements }Break;Case label;// statementsBreak;Defaul //{optional}
คาสงั่ สาหรบั ขา้ มสว่ นท่กี าหนดตามเข่ือนไขภายในการวนรอบ for, while หรือdo…...whileตวั อยา่ งFor (x = 0; x < 255; x ++){If (x > 40 && x < 120){ // create jump in valuesContinue;}digitalWrite(PWMpin,x);delay(50);}
เป็ นคาสงั่ สง่ คากลบั ไปเม่อื ฟังกช์ นั่ ทางานเสร็จส้นิตวั อยา่ งIntcheck5enso0แตถ่ า้ กาหนดคา่ เร่มิ ตน้ ใหX้ และYมีคา่ เทา่ กบั ทาใหเ้ ง่อื นไขของwhileเป็นเทจ็ จงึ ขา้ มคาสงั่ ในwhileไปทาคาสงั่ y=x*10ตวั แปรyจงึ มคี า่ เทา่ กบั 120(y=12*10)เป็ นคาสงั่ ทม่ี กี ารทางานวนรอบทาซ้าคลา้ ยกบั whileแตต่ า่ งกนั เทา่ ท่dี o…...whileจะดาเนินการทาคาสงั่ ภายในกอ่ นแลว้ จงึ พจิ ารณาเงอ่ื นไขในภายหลงั ในขณะท่wี hileจะพจิ ารณาเง่อื นไขกอ่ น
Do{//statement(s)}while{เงอ่ื นไข}ตวั อยา่ งX=12;Y=12;Do{X+=2;}while(x<10);Y=x*10;
ใชส้ าหรบั ออกจากการวนรอบนอกเหนือจากเง่อื นไขปกติของfor,while หรอืdo….whileตวั อยา่ งfor(x=0;x<200;x++{digitalWrite(LED,HGHX);detay(500);
ใชส้ าหรบั ออกจากการวนรอบนอกเหนือจากเง่อื นไขปกติของfor,while หรอืdo….whileตวั อยา่ งfor(x=0;x<200;x++{digitalWrite(LED,HGHX);detay(500);
Search
Read the Text Version
- 1 - 15
Pages: