Your Knowledge Your Future
Tiếng Việt English
Hotline: 0902561426

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2
Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Tài liệu

Bài 11: PIC Đọc nhiệt độ PT 100 hiển thị lên LCD 16x2

Yêu cầu: Đọc nhiệt độ từ cảm biến PT100 và hiển thị lên LCD 16x2

Linh kiện chuẩn bị

  • PIC 16F887
  • Biến trở 1K Ohm
  • Điện trở 250 Ohm
  • Nguồn 24V
  • Cảm biến nhiệt độ PT100
  • Bộ chuyển đổi nhiệt độ cho PT100 J2H16
  • LCD 16x2

Mạch đi dây

Vì arduino chỉ đọc được giá trị từ 0 - 5V nên mà bộ chuyển đổi J2H16 sẽ xuất tín hiệu 4 - 20mA  nên sẽ gắn thêm điện trở để chuyển đổi giá trị. Giá trị điện trở sẽ = 5V/20mA = 250Ohm. Sau khi gắn điện trở giá trị mà arduino sẽ đọc được từ bộ chuyển đổi sẽ trong khoảng 4mA*250 - 20mA*250 = 1 - 5V

Biểu đồ phương trình chuyển đổi

Arduino đọc giá trị 0 - 5V sẽ chuyển đổi thành số 0-1024 nên phương trình chuyển đổi  Y = 5/1024x (1)(y là Volt, x là số arduino đọc được). Bộ chuyển đổi J2H16 kết hợp điện trở sẽ quy đổi tín hiêụ 0 - 400 độ C sẽ chuyển đổi thành 1- 5V nên ta có phương trình chuyển đổi Y = 100x - 100 (2)(y là nhiệt độ, x là Volt). Tổng hợp (1)(2) ta có phương trình biểu diển nhiệt độ theo số đọc được của Arduino: Y = 125/256x-100

Chương trình điều khiển:

#include
#define LCD_ENABLE_PIN  PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include
unsigned int16 nd1;
void khoitao_ADC0()
{
   setup_adc_ports(SAN0|VSS_VDD);
   setup_adc (adc_clock_div_32);
   delay_us(100);
   
}
void main()
{
   set_tris_a(0xff);
   khoitao_ADC0();
   lcd_init ();
   //lcd_putc("NHIET DO LM35:");
   while(TRUE)
   {
      set_adc_channel(0);
      delay_us(10);
      nd1= read_adc()*125/256-100;
      LCD_GOTOXY(1,1);
      printf(LCD_PUTC, "NHIET DO = %02LU C",nd1);
      LCD_GOTOXY(14,1);
      LCD_PUTC(0xDF);
   }
}

Mình sẽ để file chương trình code ở dưới.

Tin khác

Thông báo mới

Fanpage facebook

Liên kết website