E muốn đưa tín hiệu vào bộ ADC con mega16 thông wa biến trở, sau đó cho hiển thị điện áp ra LCD 16x2, nhờ mọi người giúp e viết chương trình. cảm ơn.
Thông báo
Collapse
No announcement yet.
Xuất tín hiệu từ adc --> lcd
Collapse
X
-
Bạn phải nói rõ bạn dùng cụ thể vào ứng dụng gì.Nếu đơn giản chỉ là làm để học thì bạn nên tự nghiên cứu rồi viết chương trình và post lên diễn đàn để mọi người có thể sửa giúp bạn.Qua đó bạn sẽ dễ hình dung chương trình mình viết và học được nhiều hơn.Đây là tài liệu bạn có thể tham khảo: cdtvn.net/attachments/418_giaotrinhAVR.pdfNguyên văn bởi yeunhan777 Xem bài viếtE muốn đưa tín hiệu vào bộ ADC con mega16 thông wa biến trở, sau đó cho hiển thị điện áp ra LCD 16x2, nhờ mọi người giúp e viết chương trình. cảm ơn.
:
Comment
-
ADC1.zip
Bạn nên đọc và tìm hiểu trước, mình cũng twj tìm hiểu và viết rất nhanh code đơn giản để đo điện áp từ bộ trở chia.
Xem code đầy đủ và mô phỏng bằng proteus.
Nếu có ích, hãy click thanks nhé
Điện tử KME,cung cap linh kien SMD, Sensor, dat hang linh kien dien tu...
Số 2, Ngõ 53, Dịch Vọng, Cầu Giấy, hà Nội
Comment
-
Theo mình đoán, bạn đang test trên mạch thật nên thấy hiện tượng này và bạn cũng chưa làm nhiều về cái này nhỉ.
Nếu trong mô phỏng, bạn sẽ thấy rất tuyến tính, đơn giản vì là lý tưởng không giốngi trong môi trường thực tế, 99% bạn dùng nhiệt điện trở (NTC)
.
Một số vần đề cần lưu ý:
- Thuật toán, công thức tính nhiệt độ từ điện áp đã chuẩn chưa
- Nguồn REF, điện áp chuẩn (điện áp dùng cấp cho bộ chia điện trở) có ổn định không, bạn nên sử dụng tụ lọc và diode zener để đảm bảo điện áp này thật phẳng. Nếu có thể, mua 1 con LDO công suất nhỏ (thường gọi là REF) để làm điện áp chuẩn này
- Khi chuyển đổi áp -> nhiệt độ, hãy lấy trung bình một số lượng mẫu phù hợp, như vậy nhiệt độ chuyển đổi sẽ ko bị dao động nhiều.
Hy vọng những kinh nghiệm này sẽ giúp ích cho bạn
THANKS
Khang Minh Electronic
Điện tử KME,cung cap linh kien SMD, Sensor, dat hang linh kien dien tu...
Số 2, Ngõ 53, Dịch Vọng, Cầu Giấy, hà Nội
Comment
-
hj, cho mình hỏi? đoạn code của mình khi xuất ra LCD no chi hiện 3f v, nhu cua pan vay, ranh thi giúp minh thu nha: thank
/************************************************** ***
This program was produced by the
CodeWizardAVR V1.24.6 Standard
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project :
Version :
Date : 7/1/2011
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega16L
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega16.h>
#include <stdlib.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 7
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x00
// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
register static unsigned char input_index=0;
// Read the AD conversion result
adc_data[input_index]=ADCW;
// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE)+input_index;
// Start the AD conversion
ADCSRA|=0x40;
}
// Declare your global variables here
void main(void)
{
unsigned int val;
float value;
char str[16];
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: None
ADMUX=FIRST_ADC_INPUT|ADC_VREF_TYPE;
ADCSRA=0xCD;
// LCD module initialization
lcd_init(16);
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
val = adc_data[0];
value = val;
value = value/1024*5;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(str,"%2.3f",value);
lcd_puts(str);
lcd_putsf("V");
delay_ms(500);
};
}
Comment
-
Chào bạn,
Sorry, mấy hôm nay bận quá nên không có thời gian đọc bài của mọi người.Cái này đơn giản thôi bạn, do bạn cấu hình khi complie chưa đúng. Bạn vào setting khi compile, trong cái chọn thiết lập sprintf , printf bạn hãy chọn float thay vì integer....lựa chọn dưới cùng ý, khi đó stdio mới giúp bạn xuất chuối số thực ra.
bạn xem trong câu hình ví dụ của mình sẽ thấy rõ vấn đề.
Thân,
Khang Minh Electronics
http;//kme.com.vnĐiện tử KME,cung cap linh kien SMD, Sensor, dat hang linh kien dien tu...
Số 2, Ngõ 53, Dịch Vọng, Cầu Giấy, hà Nội
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment