Thai microtron community

Electronic Knowledge Base => Microcontoller & Electronics => Topic started by: exitpomai on August 27, 2010, 04:36:57 PM



Title: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 27, 2010, 04:36:57 PM
พอดีเอาเอาโปรแกรมจากเว็บไปแก้
แล้วต่อเซนต์เซอร์ SHT11 เข้าไป
ค่าที่มันแสดงออกมาคือ
T = -40 C
H = -4.65%
Dew Point: -74.368032C
ตามรูปอะครับ
แล้วไม่เปลี่ยนค่าเลย
แบบนี้มันมีปัญหาอะไรครับ ช่วยบอกทีครับ
(http://i297.photobucket.com/albums/mm227/exitpomai/Capture-5.jpg)


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 28, 2010, 03:13:27 PM
ไม่มีใครตอบเลย สงสัยโปรเจ็คจะไม่ได้ส่งแล้วหละ :(


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: smitdh on August 30, 2010, 07:30:09 AM
ขอโทษครับไม่ได้เข้ามาอ่านซะนาน
ส่วนใหญ่ท่านที่นำไปใช้กับเบอร์อื่น ที่ใช้ Xtal ที่มีความถี่ต่างกันจะลืมเรื่องการ set fuse
ลองดูจากปัญหาเก่าๆครับ
http://www.thaimicrotron.com/webboard2/index.php?topic=601.msg1497#msg1497


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 31, 2010, 03:58:33 PM
ตอนนี้มันแสดงค่าไม่เหมือนเดิมแล้วอะครับ
แต่ยังคงเป็นค่าที่นิ่งไม่วิ่งไปไหนเลย ไม่ว่าจะร้อนหรือเย็นก็แสดงค่าเดิมตะลอด
ลองทำแบบที่คุณ smitdh บอกแล้วครับ แต่ผลที่ได้ก็เหมือนเดิมครับ
และแสดงค่าครั้งเดียว แล้วก็จะขึ้นว่าไม่ได้ต่อเซนเซอร์ตลอด ต้องกดปุ่มรีเซ็ตถึงจะแสดงค่าใหม่ซึ่งเป็นค่าเดิมครับ

(http://i297.photobucket.com/albums/mm227/exitpomai/SHT11.jpg)


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 31, 2010, 04:06:29 PM
ตัวโปรแกรมครับ
ช่วยดูให้หน่อยนะครับ
ต้องส่งกระดาษก่อนว่าที่2นี้แล้วครับ
//SHT1x Sensor temperature & Humidity
//Read sensor and diaplay to RS232
//Compiler CCS Version 3.249
#include <18F2550.h>           // Standard Header file for the PIC16F877 device
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define  TxD         PIN_C6   // Define Transmitted Data
#define  RxD         PIN_C7   // Define Received Data
#define  CLOCK_SP    20000000 // Clock Speed(Hz)

//#USE I2C(MASTER, SDA=EEPROM_SDA, SCL=EEPROM_SCL, FAST=100000)
// Device Specification
#fuses HS                     // Oscillator mode HS
#fuses NOLVP, NOWDT           // No Low Voltage Program, No Watchdog timer
#fuses NOPROTECT              // Code no protection
#use delay (clock=CLOCK_SP)   // Use built-in function: delay_ms() & delay_us()
#use rs232(baud=9600, xmit=TxD,rcv=RxD, stream=PC_COM , BRGH1OK, ERRORS) // Use serial I/O port (RS232)
#fuses CPUDIV1 //CPUDIV1=OSC CPUDIV2=OSC/2 CPUDIV3=OSC/3 CPUDIV4=OSC/4
#use fast_io(a)
#use fast_io(b)

#define SHT1xDATA  PIN_B4
#define SHT1xSCK   PIN_B5
#define noACK 0
#define ACK   1

// SHT1x address=000 is currently supported
// SHT1x command code
                            //adr  command  r/w
#define STATUS_REG_W 0x06   //000   0011    0
#define STATUS_REG_R 0x07   //000   0011    1
#define MEASURE_TEMP 0x03   //000   0001    1
#define MEASURE_HUMI 0x05   //000   0010    1
#define RESET        0x1E   //000   1111    0

// constant use for SHT1x Humidity Measurement
#define C1  -4.0
#define C2  0.0405
#define C3  -0.0000028

// constant use for SHT1x Temperature Measurement
#define D1  -40.00
#define D2  0.01

// constant use for SHT1x True Humidity Measurement
#define T1  0.01
#define T2  0.00008

//PIC16F6X8
#define  CMCON   0x1F
#define  PORTA    0x00
#define  PORTB    0x06


void InitialChip(void);

//SHT1x Transmission Start condition
void SHTStart()
{
   output_high(SHT1xDATA);
   output_low(SHT1xSCK);
   output_high(SHT1xSCK);
   output_low(SHT1xDATA);
   output_low(SHT1xSCK);
   output_high(SHT1xSCK);
   output_high(SHT1xDATA);
   output_low(SHT1xSCK);

}

// SHT1x Connection Reset:
void SHTConReset()
{
int i;

   output_high(SHT1xDATA);

   for (i=0; i<9; i++)
   {
      output_high(SHT1xSCK);
      delay_us(2);
      output_low(SHT1xSCK);
      delay_us(2);
   }
   SHTStart();
}

// SHT1x Address & Command Mode with address=000
int SHTWrite(int Data)
{
int i;

   for (i=0x80;i>0;i/=2)        //shift bit for masking data
   {
    if(i&Data)
     output_high(SHT1xDATA);
    else
     output_low(SHT1xDATA);

     delay_us(2);               //Snend Clock each bit
     output_high(SHT1xSCK);
     delay_us(2);
     output_low(SHT1xSCK);
   }

   output_float(SHT1xDATA);     //Change DATA Line to Input
   delay_us(2);

   output_high(SHT1xSCK);       //Clock for Acknowledge
   delay_us(2);

   i= input(SHT1xDATA);         //Get Acknowledge

   output_low(SHT1xSCK);
   delay_ms(250);
   return (i);
}

//Read data from SHT1x
long SHTRead(void)
{
int i;
long lTmp,lVal1,lVal2,lValue;

   lVal1=0;
   lVal2=0;

//get MSB from SHT1x
   for (i=0; i<8; i++)
   {
    lVal1<<=1;
    output_high(SHT1xSCK);          //Send Clock Hight
    lTmp = input(SHT1xDATA);        //Read Data Bit
    //delay_us(2);
    output_low(SHT1xSCK);           //Send Clock Low
    //delay_us(2);

    if(lTmp)
     lVal1|=1;                      //store in lVal1
   }

//Acknowledge routine for Next byte
   output_low(SHT1xDATA);
   output_high(SHT1xSCK);
   //delay_us(2);

   output_float(SHT1xDATA);         //Change to Input
   output_low(SHT1xSCK);
   //delay_us(2);

//get LSB from SHT1x
   for (i=0; i<8; i++)
   {
    lVal2<<=1;
    output_high(SHT1xSCK);          //Send Clock Hight
    lTmp = input(SHT1xDATA);        //Read Data Bit
    //delay_us(2);
    output_low(SHT1xSCK);           //Send Clock Low
    //delay_us(2);

    if(lTmp)
      lVal2|=1;                     //store in lVal2
   }


   lValue = make16(lVal1,lVal2);    //Makes a 16 bit number out of two 8 bit numbers.
   return(lValue);
}
// SHT1x Soft Reset
// resets the interface, clears the status register to default values
// wait minimum 11ms before next command
void SHTSoftReset()
{
  SHTConReset();
  SHTWrite(RESET);
}

// calculate dewpoint
float sht1x_calc_dewpoint(float fRh,float fTemp)
{
   float fDewpoint;
   float fLogEW;

   fLogEW = ((7.5*fTemp)/(237.3+fTemp))+log10(fRh)-1.33923;
   fDewpoint = ((0.66077-log10(fLogEW))*(237.3))/(log10(fLogEW)-8.16077);
   return(fDewpoint);
}
void InitialChip(void)
{
    setup_comparator(NC_NC_NC_NC);   //Input Digital
    set_tris_b(0B00000001);
}

// Main Program
void main()
{

float fRh_lin;
float fRh_true;
float fTemp_true;
float fDew_point;

long lValue_rh;
long lValue_temp;
int R;
set_tris_a(0x00);
output_high(PIN_A0);
output_low(PIN_A1);
/*
while(1){
   putc('a');
     delay_ms(1000);

}
*/
   InitialChip();
   delay_ms(200);

   SHTConReset();

   while (TRUE)
   {
     // delay >11ms before next command
      delay_ms(12);

      SHTStart();                                                        //@1 start transmission
      R=SHTWrite(MEASURE_TEMP);           //@2 measure temperature
      if(R==1)
      {
       printf("Please connect to the sensor.\r\n");
       delay_ms(1000);
       continue;
      }

      lValue_temp = SHTRead();

      // temperature calculation
      fTemp_true = (D1+(D2*lValue_temp));

      // delay 11ms before next command
      delay_ms(12);

      // start transmission
      SHTStart();

      // measure relative humidity
      SHTWrite(MEASURE_HUMI);
      lValue_rh = SHTRead();

      // relative humidity calculation
      fRh_lin = (C1+(C2*lValue_rh)+(C3*lValue_rh*lValue_rh));
      fRh_true = (((fTemp_true-25)*(T1+(T2*lValue_rh)))+fRh_lin);

      // dewpoint calculation
      fDew_point = sht1x_calc_dewpoint(fRh_true,fTemp_true);

      printf("Temp=%3.2f C\r\n",fTemp_true);
      printf("H=%3.2f%%\r\n",fRh_true);
      printf("Dew Point: %3.6fC \r\n\r\n",fDew_point);
      delay_ms(1000);
   }
}


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 31, 2010, 05:21:24 PM
ตอนนี้อ่านค่าอุณหภูมิได้แล้วครับ
แต่ค่าความชื้อมันออกมาติดลบเยอะมากเลยครับ
มันเป็นเพราะอะไรหรอครับ
(http://i297.photobucket.com/albums/mm227/exitpomai/SHT111.jpg)


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on August 31, 2010, 07:21:16 PM
เพิ่มเติมอีกนิดนึงครับ
ผทลองดึงค่าต่างๆออกมาแล้วเห็นค่ามันเป็นแบบนี้อะครับ
lValue_temp=1bff
lValue_rh=ffff
Temp=31.66 C
H=-2623.13%
Dew Point: -6.014130C

lValue_rh ที่ออกมาเป็น FFFF  แบบนี้ปกติหรือปล่าวครับ


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: smitdh on August 31, 2010, 08:30:53 PM
ตอนนี้ผมไม่มี SHT15 ในมือ
เดี๋ยวจะวานคุณ gundam ดูให้นะครับ


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: gundam on August 31, 2010, 09:39:00 PM
เดี๋ยวผมจะช่วยดูให้นะครับ
แต่ผมสงสัยว่าทำไหมไม่ใช้เบอร์ PIC16F648A ตรงๆไปเลยจะได้ไม่ต้องแก้ไขอะไร และยังถูกกว่าด้วย
เดี๋ยวผมจะลองค้นหาเบอร์ PIC18F2550 ดูก่อน แล้วจะดูโค๊ดให้นะครับ

(http://www.thaimicrotron.com/PIC/CCS/SHT15/Graph/SHT1x-648A.gif)

ส่วน hardware อย่าลืม R pullup 4.7K นะครับ
แล้ว C 20p ที่ต่อกับ Xtal ลงกราวน์ ทั้ง 2 ตัว นะครับไม่งั้นรวนแย่
hardware ต่ออย่างไรครับ ทำ PCB, ทดลองบนโปรโตบอร์ด, หรือต่อลงบอร์ดเอนกประสงค์ (บอร์ดไข่ปลา)
จะได้ช่วยวิเคราะห์ได้ถูก






Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on September 01, 2010, 02:24:29 PM
พอดีอาจารย์ที่ปรึกษาบอกให้ใช้เบอร์นี้อะครับ
ผมต่อลงบอร์ดไข่ปลาอะครับ แล้วใช้74LS125 เป็นตัวเลือกว่าจะส่งเข้าคอมผ่านRF232 หรือส่งออกRF moduleครับ



Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: gundam on September 01, 2010, 03:04:07 PM
ปกติแล้ว pic18F2550 มักจะใช้ก็ต่อเมื่อต้องการใช้ USB ครับ ไม่เช่นนั้นใช้พวก PIC16F886 (70บาทเอง) 28 pin เหมือนกัน แต่ต้องใช้ CCS Version 4 ขึ้นไป เพราะเป็นเบอร์ใหม่

ตอนนี้ผมลองใช้เบอร์ pic18F2550 (ถอดมาจาก PICKit2 ของอีกตัว)
โค๊ดจากในเวป ของ อ.smitdh แค่เปลี่ยน include เป็น
#include <18F2550.h>
#fuses XT,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)

fuse เหมือนเดิม ก็ใช้ได้เลยนี่ครับ
แต่ใช้ Xtal 4MHz นะ เดี๋ยวลองหา Xtal 20 MHz ก่อนจะลองอีกที



Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on September 01, 2010, 03:45:38 PM
ตอนนี้ลอง ปิดรับค่าอุณภูมิแล้วกำหนดขึ้นมาเอง
มันก็แสดงความชื้นเป็นปกติอะครับ


หากเลือกแสดงอุณหภูมิ ความชื้นมันก็ไม่ส่งค่ามา
แต่พอกำหนดอุณหภูมิขึ้นมาเอง ความชื้นก็ปกติครับ
แต่ก็ไม่สามารถแสดงค่าอุณหภูมที่แท้จริงได้


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: gundam on September 01, 2010, 04:37:53 PM
พอใช้ค่า Xtal 20 MHz ก็รวนเลยครับ
เดี๋ยวผมลองจัดค่า delay ให้ใหม่


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: gundam on September 01, 2010, 05:00:24 PM
โปรแกรมนี้ใช้ PIC18F2550 XTal 20MHz

Code:
#case
#include <18F2550.h>
#use delay(clock=20000000)
#fuses HS,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP

#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)
#include <math.h>

#define SHT1xDATA  PIN_B4
#define SHT1xSCK   PIN_B5
#define noACK 0
#define ACK   1

// SHT1x address=000 is currently supported
// SHT1x command code
                            //adr  command  r/w
#define STATUS_REG_W 0x06   //000   0011    0
#define STATUS_REG_R 0x07   //000   0011    1
#define MEASURE_TEMP 0x03   //000   0001    1
#define MEASURE_HUMI 0x05   //000   0010    1
#define RESET        0x1E   //000   1111    0

// constant use for SHT1x Humidity Measurement
#define C1  -4.0
#define C2  0.0405
#define C3  -0.0000028

// constant use for SHT1x Temperature Measurement
#define D1  -40.0
#define D2  0.01

// constant use for SHT1x True Humidity Measurement
#define T1  0.01
#define T2  0.00008

#define nDelay  2


void InitialChip(void);

//SHT1x Transmission Start condition
void SHTStart()
{
   output_high(SHT1xDATA);
   output_low(SHT1xSCK);
   output_high(SHT1xSCK);
   output_low(SHT1xDATA);
   output_low(SHT1xSCK);
   output_high(SHT1xSCK);
   output_high(SHT1xDATA);
   output_low(SHT1xSCK);

}

// SHT1x Connection Reset:
void SHTConReset()
{
int i;

   output_high(SHT1xDATA);

   for (i=0; i<9; i++)
   {
      output_high(SHT1xSCK);
      delay_us(nDelay);
      output_low(SHT1xSCK);
      delay_us(nDelay);
   }
   SHTStart();
}

// SHT1x Address & Command Mode with address=000
int SHTWrite(int Data)
{
int i;

   for (i=0x80;i>0;i/=2)        //shift bit for masking data
   {
    if(i&Data)
     output_high(SHT1xDATA);
    else 
     output_low(SHT1xDATA);

     delay_us(nDelay);               //Snend Clock each bit
     output_high(SHT1xSCK);
     delay_us(nDelay);
     output_low(SHT1xSCK);
   }

   output_float(SHT1xDATA);     //Change DATA Line to Input
   delay_us(nDelay);

   output_high(SHT1xSCK);       //Clock for Acknowledge
   delay_us(nDelay);

   i= input(SHT1xDATA);         //Get Acknowledge

   output_low(SHT1xSCK);
   delay_ms(250);
   return (i);
}

//Read data from SHT1x
long SHTRead(void)
{
int i;
long lTmp,lVal1,lVal2,lValue;

   lVal1=0;
   lVal2=0;

//get MSB from SHT1x
   for (i=0; i<8; i++)
   {
    lVal1<<=1;
    output_high(SHT1xSCK);          //Send Clock Hight
    lTmp = input(SHT1xDATA);        //Read Data Bit
    delay_us(nDelay);//@
    output_low(SHT1xSCK);           //Send Clock Low
    delay_us(nDelay);//@

    if(lTmp)
     lVal1|=1;                      //store in lVal1
   }

//Acknowledge routine for Next byte
   output_low(SHT1xDATA);
   delay_us(nDelay);//@2
   output_high(SHT1xSCK);
   delay_us(nDelay);//@2

   output_float(SHT1xDATA);         //Change to Input
   delay_us(nDelay);//@2
   output_low(SHT1xSCK);
   delay_us(nDelay);//@

//get LSB from SHT1x
   for (i=0; i<8; i++)
   {
    lVal2<<=1;
    output_high(SHT1xSCK);          //Send Clock Hight
    lTmp = input(SHT1xDATA);        //Read Data Bit 
    delay_us(nDelay);//@
    output_low(SHT1xSCK);           //Send Clock Low
    delay_us(nDelay);//@

    if(lTmp)
      lVal2|=1;                     //store in lVal2
   }
   

   lValue = make16(lVal1,lVal2);    //Makes a 16 bit number out of two 8 bit numbers.
   return(lValue);
}
// SHT1x Soft Reset
// resets the interface, clears the status register to default values
// wait minimum 11ms before next command
void SHTSoftReset()
{
  SHTConReset();
  SHTWrite(RESET);
}

// calculate dewpoint
float sht1x_calc_dewpoint(float fRh,float fTemp)
{
   float fDewpoint;
   float fLogEW;

   fLogEW = ((7.5*fTemp)/(237.3+fTemp))+log10(fRh)-1.33923;
   fDewpoint = ((0.66077-log10(fLogEW))*(237.3))/(log10(fLogEW)-8.16077);
   return(fDewpoint);
}
void InitialChip(void)
{
    setup_comparator(NC_NC_NC_NC);   //Input Digital
    set_tris_b(0B00000001);
}

// Main Program
main()
{
float fRh_lin;
float fRh_true;
float fTemp_true;
float fDew_point;

long lValue_rh;
long lValue_temp;
int R;

   InitialChip();
   delay_ms(200);
   
   printf("\r\nTest SHT15 PIC18F2550 20MHz\r\n");

   SHTConReset();

   while (TRUE)
   {
     // delay >11ms before next command
      delay_ms(12);

      SHTStart();                                                        //@1 start transmission
      R=SHTWrite(MEASURE_TEMP);           //@2 measure temperature
      if(R==1)
      {
       printf("Sensor Error\n");
       delay_ms(1000);
       continue;
      }

      lValue_temp = SHTRead();

      // temperature calculation
      fTemp_true = (D1+(D2*lValue_temp));

      // delay 11ms before next command
      delay_ms(12);

      // start transmission
      SHTStart();

      // measure relative humidity
      SHTWrite(MEASURE_HUMI);
      lValue_rh = SHTRead();

      // relative humidity calculation
      fRh_lin = (C1+(C2*lValue_rh)+(C3*lValue_rh*lValue_rh));
      fRh_true = (((fTemp_true-25)*(T1+(T2*lValue_rh)))+fRh_lin);

      // dewpoint calculation
      fDew_point = sht1x_calc_dewpoint(fRh_true,fTemp_true);

      printf("T=%3.2f C\r\n",fTemp_true);
      printf("H=%3.2f%%\r\n",fRh_true);
      printf("Dew Point: %3.6fC \r\n\r\n",fDew_point);
      delay_ms(1000);
   }
}


ผมเพิ่ม delay time ที่มี comment //@ และ //@2 ต่อท้ายครับ
ส่วน UART คุณไปแก้เป็นขาตามที่คุณใช้ครับ
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)




Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: smitdh on September 01, 2010, 06:55:38 PM
พอดีอาจารย์ที่ปรึกษาบอกให้ใช้เบอร์นี้อะครับ
ผมต่อลงบอร์ดไข่ปลาอะครับ แล้วใช้74LS125 เป็นตัวเลือกว่าจะส่งเข้าคอมผ่านRF232 หรือส่งออกRF moduleครับ

ยังมีขาเหลืออีกนี่ครับ เราสามารถใช้ UART ได้หลายพอร์ต โดยใช้ software UART ครับ จะได้ไม่ต้องคอยสวิทช์ เพราะขณะสวิทช์ จากขานึ่งไปยังอีกขานึงจะเกิด noise (ขยะ) จะต้องหน่วงเวลาหลังการสวิทช์ด้วย ลองดู
http://www.thaimicrotron.com/webboard2/index.php?topic=11.msg18#msg18


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: exitpomai on September 03, 2010, 03:43:23 PM
ตอนนี้อาการยังเหมือนเดิมเลยครับ
หรือเป็นเพราะคำสั่งนี้
set_tris_a(0x00);
output_high(PIN_A0);
output_low(PIN_A1);
ที่ทำให้กำทำงานมันออกมาไม่ตรงเหมือนคนอื่นเค้า
หากเป็นแบบนี้จริง
ผมควรเอาโค๊ตในส่วนนี้ไปวางตรงไหนครับ


Title: Re: รบกวน ถามเรื่อง SHT11 กับ PIC18F2550 หน่อยครับ
Post by: gundam on September 07, 2010, 10:35:40 AM
การเซ็ท set_tris_a(0x00); จะวางตรงไหนก็ได้ครับ
ปกติแล้วมักจะวางไว้ต้นๆ โปรแกรมเพื่อกันลืม

ส่วนการใช้งานเอาต์พุต จะวางไว้ตรงที่เราจะใช้
output_high(PIN_A0);
output_low(PIN_A1);

หากขา PIN_A0,PIN_A1 ไม่ได้ต่อกับอะไร ที่กินกระแสมากๆ ก็ไม่น่ามีผลอะไร


Title: Re: รบกวน ถามเรื่อง SHT11 กับ MicroLPC 2148 หน่อยครับ
Post by: pam on September 14, 2010, 11:05:27 AM
พอดีพอทำโครงงานการติดต่อระหว่าง เซนเซอSHT1ไมโครLPC2148
โดยใช้โปรแกรมKeil ภาษาซี ผมจึงอยากได้โค้ดคับ
ท่านใดพอจะมีโค้ดหรือคำแนะนำ ขอหน่อยนะครับ
ขอบคุณคับ