นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

ServiceMan
Ico64
Sathaya Bunratchoo
Engineer
Scientific Equipment Center, PSU
เครือข่าย
สมาชิก · ติดตาม: 3 · ผู้ติดตาม: 2

อ่าน: 1611
ความเห็น: 0

การพัฒนาโปรแกรมด้วยภาษา C กับ pcDuino ตอน ADC

เรียนรู้การเขียนโปรแกรมด้วยภาษา C กับ pcDuino ตอน ADC

     ปีที่แล้วผมเคยบันทึกเกี่ยวกับคอมพิวเตอร์ฝังตัวที่ใช้ ubuntu (จริงๆแล้วคือ Lbuntu) ห่างหายไปนานครั้งนี้มาต่อกันกับการพัฒนาโปรแกรมด้วยภาษาซีกันครับ หากลืมไปแล้วว่า pcDuino คืออะไรย้อนกลับไปที่ บันทึกนี้ นะครับ

     การพัฒนาโปรแกรมสำหรับ pcDuino สามารถทำได้หลายแบบคือ ภาษาซี (C++) หรือจะใช้ Python ก็ได้ และอีกรูปแบบคือการเขียนสไตล์ arduino ก็ทำได้เช่นกันซึ่งรูปแบบนี้จะใช้ในการควบคุม Hardware ได้ง่ายกว่าจะขอกล่าวถึงในครั้งหน้านะครับ

     สำหรับในตอนนี้ขอแนะนำการเขียนด้วย C++ เพื่ออ่านค่าจาก ADC นะครับ
ให้เขียน Code ดังด้านล่างอาจจะ Copy ไปวางใน nano โดยการคลิกขวาก็ได้นะครับ

#include <stdio.h>
#include <fcntl.h>
#define ADEV "/proc/adc2"
int main(void) {
int aPin = open(ADEV, O_RDONLY);
  while (2 > 1) {
    char tBuf[16];
    // set to start of file
    lseek(aPin, 0, SEEK_SET);
    // read adc data
    int ret = read(aPin, tBuf, sizeof(tBuf));
    // convert adc data to a value.
    int aVal = atoi(tBuf+5);
    printf("%d\n", aVal);
  }
}

 

จากนั้นให้บันทึกเป็น adc.c

แล้ว Compile ด้วยคำสั่ง $ gcc adc.c -o adc จะได้ output adc

สามารถ Run โดย $ ./adc และยกเลิกด้วย Ctrl + C

ในโปรแกรม

#define ADEV "/proc/adc2"

หมายถึงเลือกใช้ A2 (Pin AIN2) หากต้องการ channel อื่นก็สามารถแก้ไขเป็นเลขอื่นได้ครับ

*** โปรดจำไว้ว่า ***

A0 and A1 อ่านค่าได้ 6 bit มีค่าเท่ากับ 0-63 ที่ช่วงแรงดัน 0-2V

A2-A5 อ่านค่าได้ 12-bit มีค่าเท่ากับ 0-4095  ที่ช่วงแรงดัน 0-3.3V

 

จะเห็นได้ว่าการพัฒนาโปรแกรมด้วย C++ สำหรับ pcDuino ไม่ยากเลย

หมวดหมู่บันทึก: พัฒนางานประจำ
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 01 พฤษภาคม 2557 21:04 แก้ไข: 01 พฤษภาคม 2557 21:11 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 LeeO, Ico24 Our Shangri-La, และ 4 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ไม่มีความเห็น

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 35.175.191.168
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ