em có bo mạch quảng cáo 31 cổng(pic 28 chân) em thấy lạ chỗ là nó PWM được tất cả 31 cổng (có 2 con logic) để mở rộng cổng,không hiểu làm kiểu gì ta khi chỉ có 2 kênh PWM nó không PWM nguồn đâu nha
Thông báo
Collapse
No announcement yet.
PWM tất cả các chân của pic
Collapse
X
-
Cái này đơn giản mà. Ví dụ dùng cổng AND hoặc OR thì dùng 1chân ON/OFF, 1 chân PWM. Nếu dùng 74HC595 thì có thể PWM vào chính chân OE.
Bạn hãy xem con mở rộng cổng là gì, xem chân RST hoặc Enable ở đâu rồi dùng oscilloscope kiểm tra là thấy ngay.
Comment
-
cám ơn 2 cao thủ đã trả lời !
-bác DuyPhi sao lại dùng nick này vậy
-em thì dùng 1 con fet treo ở đầu nguồn PWM all bo luôn
-em thắc mắc là những chân không cho vào 595 mà nó vẫn PWM được ,tầm khoảng hơn chục chân không qua 595 mà vẫn PWM all bo chả nhẽ nó quét nhanh sao ? giải thích giúp em vớiSỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Thực tế để driver cho led tui ít khi dùng phần cứng vì k đủ chân PWM, với lại khi cần thay đổi độ rộng xung cho các chân khác nhau thì k được nên tui dùng phần mềm k à bác, dĩ nhiên tần số đạt được là k cao nhưng ứng dụng cho led thì ok.
Comment
-
Nguyên văn bởi kevo1tinh Xem bài viếtThực tế để driver cho led tui ít khi dùng phần cứng vì k đủ chân PWM, với lại khi cần thay đổi độ rộng xung cho các chân khác nhau thì k được nên tui dùng phần mềm k à bác, dĩ nhiên tần số đạt được là k cao nhưng ứng dụng cho led thì ok.SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Biến trở kết nối chân ADC nhé, giá trị này tùy chỉnh độ rộng xung hoặc tần số nha bác. Thông thường tui tùy chỉnh độ rộng xung, còn tần số tui cho cố định. Khi lập trình led, vì phải tạo hiệu ứng cho nhiều PIN nên tui khai báo 1 mảng lưu trạng thái của PIN với độ lớn tương ứng số PIN sử dụng, VD: PIN_PRE[31], trong đó PIN_PRE[0]....PIN_PRE[5] dành cho cụm led A, PIN_PRE[6]....PIN_PRE[10] dành cho cụm led B,.....Việc tạo hiệu ứng được thực hiện trên mảng này nha.
Tạo 1 hàm xuất trạng thái ra chân VXL, vd:
void xuat_pin()
{
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_C2,PIN_PRE[1]);
.
.
.
}
để tạo PWM cần tạo 1 timer phụ, nằm trong ngắt timer, VD tui xử dụng timer 1, timer phụ lấy tên là "A_TIMER".
#int_TIMER1
void TIMER1_isr(void) //500us ngắt nha, vd thôi.
{
set_timer1(xxxxx);
if (A_TIMER>0) A_TIMER--;
else A_TIMER = nnn; //như vậy T=500us * nnn
}
sửa lại hàm xuất trạng thái
void xuat_pin()
{
if (A_TIMER<BBBB)
{
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_C2,PIN_PRE[1]);
.
.
.}
else
{
output_bit(PIN_A1,OFF);
output_bit(PIN_C2,OFF);
.
.
}
giá trị BBBB lấy từ ADC thông qua 1 phép tính nào đó tùy bạn muốn.
Nếu muốn độ rộng xung cho từng PIN thì lồng hàm if vào cho mỗi lệnh output_bit(..,..)
Thân.
Comment
-
Bạn có thể tham khảo chương trình này để dễ hình dung, nhưng chương trình này chỉ dùng ADC để tăng giảm tốc độ chạy cho hiệu ứng chứ không PWM. Không đính kèm được, thôi paste vào vậy:
#define DB0 PIN_C5
#define DB1 PIN_C4
#define DB2 PIN_C3
//----------------------gia tri
#define SANG 1
#define TAT 0
//----------------------duong bien
#define ADD_DOWNDB 0 //dia chi duoi cho DB
#define ADD_UPDB 2 //dia chi tren cho DB
//----------------------noi dung 1
#define ADD_DOWN1 3 //dia chi duoi cho HU 1
#define ADD_UP1 3 //dia chi tren cho HU 1
int8 PIN[12];
int8 db_index=0,idb=0;
int8 value_adc=100;
int8 hu1_index=0;
int16 DB_TIMER=0,db_delay=500;
int16 A_TIMER=0,hu1_delay=500;
#int_TIMER1 //TA=16MHz, delay 0,5ms
void TIMER1_isr(void)
{
set_timer1(63535);
if (DB_TIMER>0) DB_TIMER--;
if (A_TIMER>0) A_TIMER--;
}
//-------------------------------------
void Db_tat()
{
int8 jdb;
for (jdb=ADD_DOWNDB;jdb<=ADD_UPDB;jdb++)
{
PIN[jdb]=TAT;
}
}
void Db_sang()
{
int8 jdb;
for (jdb=ADD_DOWNDB;jdb<=ADD_UPDB;jdb++)
{
PIN[jdb]=SANG;
}
}
void Hu1_tat()
{
int8 j1;
for (j1=ADD_DOWN1;j1<=ADD_UP1;j1++)
{
PIN[j1]=TAT;
}
}
void Hu1_sang()
{
int8 j1;
for (j1=ADD_DOWN1;j1<=ADD_UP1;j1++)
{
PIN[j1]=SANG;
}
}
//-------------------------------------
void Duong_bien()
{
int8 kdb;
if(db_index==0)
{
// db_delay=DELAY_DB_MIN;
idb=ADD_DOWNDB;
db_index=1;
}
else if (db_index==1)
{
if (DB_TIMER==0)
{
for (kdb=ADD_DOWNDB;kdb<=ADD_UPDB;kdb++)
{
PIN[kdb]=TAT;
}
PIN[idb]=SANG;
idb++;
if (idb>ADD_UPDB)
{
idb=ADD_DOWNDB;
}
DB_TIMER=db_delay;
}
}
else
{
idb=0;
}
}
//--------------------------------------
void Hu1()
{
if (hu1_index==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=1;
}
else if (hu1_index==1)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=2;
}
}
else if (hu1_index==2)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=3;
}
}
else if (hu1_index==3)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=4;
}
}
else if (hu1_index==4)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=5;
}
}
else if (hu1_index==5)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=6;
}
}
else if (hu1_index==6)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=7;
}
}
else if (hu1_index==7)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay * 5;
Hu1_sang();
hu1_index=1;
}
}
}
//------------------------------------
void Calculate_delay()
{
value_adc = read_adc ();
db_delay = make16(0,value_adc);
hu1_delay = db_delay *10;
db_delay = db_delay *2;
}
void Out_led()
{
//duong bien
output_bit(DB0,PIN[0]);
output_bit(DB1,PIN[1]);
output_bit(DB2,PIN[2]);
//noi dung 2
output_bit(PIN_C2,PIN[3]);
output_bit(PIN_C1,PIN[3]);
}
void main()
{
setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_wdt( WDT_2304MS);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_adc_channel(0);
delay_ms(10);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab
// TODO: USER CODE!!
while (TRUE)
{
restart_wdt();
Calculate_delay();
Duong_bien();
Hu1();
Out_led();
}
}
Comment
-
Nguyên văn bởi kevo1tinh Xem bài viếtBiến trở kết nối chân ADC nhé, giá trị này tùy chỉnh độ rộng xung hoặc tần số nha bác. Thông thường tui tùy chỉnh độ rộng xung, còn tần số tui cho cố định. Khi lập trình led, vì phải tạo hiệu ứng cho nhiều PIN nên tui khai báo 1 mảng lưu trạng thái của PIN với độ lớn tương ứng số PIN sử dụng, VD: PIN_PRE[31], trong đó PIN_PRE[0]....PIN_PRE[5] dành cho cụm led A, PIN_PRE[6]....PIN_PRE[10] dành cho cụm led B,.....Việc tạo hiệu ứng được thực hiện trên mảng này nha.
Tạo 1 hàm xuất trạng thái ra chân VXL, vd:
void xuat_pin()
{
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_C2,PIN_PRE[1]);
.
.
.
}
để tạo PWM cần tạo 1 timer phụ, nằm trong ngắt timer, VD tui xử dụng timer 1, timer phụ lấy tên là "A_TIMER".
#int_TIMER1
void TIMER1_isr(void) //500us ngắt nha, vd thôi.
{
set_timer1(xxxxx);
if (A_TIMER>0) A_TIMER--;
else A_TIMER = nnn; //như vậy T=500us * nnn
}
sửa lại hàm xuất trạng thái
void xuat_pin()
{
if (A_TIMER<BBBB)
{
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_C2,PIN_PRE[1]);
.
.
.}
else
{
output_bit(PIN_A1,OFF);
output_bit(PIN_C2,OFF);
.
.
}
giá trị BBBB lấy từ ADC thông qua 1 phép tính nào đó tùy bạn muốn.
Nếu muốn độ rộng xung cho từng PIN thì lồng hàm if vào cho mỗi lệnh output_bit(..,..)
Thân.SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Nguyên văn bởi kevo1tinh Xem bài viếtBạn có thể tham khảo chương trình này để dễ hình dung, nhưng chương trình này chỉ dùng ADC để tăng giảm tốc độ chạy cho hiệu ứng chứ không PWM. Không đính kèm được, thôi paste vào vậy:
#define DB0 PIN_C5
#define DB1 PIN_C4
#define DB2 PIN_C3
//----------------------gia tri
#define SANG 1
#define TAT 0
//----------------------duong bien
#define ADD_DOWNDB 0 //dia chi duoi cho DB
#define ADD_UPDB 2 //dia chi tren cho DB
//----------------------noi dung 1
#define ADD_DOWN1 3 //dia chi duoi cho HU 1
#define ADD_UP1 3 //dia chi tren cho HU 1
int8 PIN[12];
int8 db_index=0,idb=0;
int8 value_adc=100;
int8 hu1_index=0;
int16 DB_TIMER=0,db_delay=500;
int16 A_TIMER=0,hu1_delay=500;
#int_TIMER1 //TA=16MHz, delay 0,5ms
void TIMER1_isr(void)
{
set_timer1(63535);
if (DB_TIMER>0) DB_TIMER--;
if (A_TIMER>0) A_TIMER--;
}
//-------------------------------------
void Db_tat()
{
int8 jdb;
for (jdb=ADD_DOWNDB;jdb<=ADD_UPDB;jdb++)
{
PIN[jdb]=TAT;
}
}
void Db_sang()
{
int8 jdb;
for (jdb=ADD_DOWNDB;jdb<=ADD_UPDB;jdb++)
{
PIN[jdb]=SANG;
}
}
void Hu1_tat()
{
int8 j1;
for (j1=ADD_DOWN1;j1<=ADD_UP1;j1++)
{
PIN[j1]=TAT;
}
}
void Hu1_sang()
{
int8 j1;
for (j1=ADD_DOWN1;j1<=ADD_UP1;j1++)
{
PIN[j1]=SANG;
}
}
//-------------------------------------
void Duong_bien()
{
int8 kdb;
if(db_index==0)
{
// db_delay=DELAY_DB_MIN;
idb=ADD_DOWNDB;
db_index=1;
}
else if (db_index==1)
{
if (DB_TIMER==0)
{
for (kdb=ADD_DOWNDB;kdb<=ADD_UPDB;kdb++)
{
PIN[kdb]=TAT;
}
PIN[idb]=SANG;
idb++;
if (idb>ADD_UPDB)
{
idb=ADD_DOWNDB;
}
DB_TIMER=db_delay;
}
}
else
{
idb=0;
}
}
//--------------------------------------
void Hu1()
{
if (hu1_index==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=1;
}
else if (hu1_index==1)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=2;
}
}
else if (hu1_index==2)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=3;
}
}
else if (hu1_index==3)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=4;
}
}
else if (hu1_index==4)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=5;
}
}
else if (hu1_index==5)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_tat();
hu1_index=6;
}
}
else if (hu1_index==6)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay;
Hu1_sang();
hu1_index=7;
}
}
else if (hu1_index==7)
{
if (A_TIMER==0)
{
A_TIMER=hu1_delay * 5;
Hu1_sang();
hu1_index=1;
}
}
}
//------------------------------------
void Calculate_delay()
{
value_adc = read_adc ();
db_delay = make16(0,value_adc);
hu1_delay = db_delay *10;
db_delay = db_delay *2;
}
void Out_led()
{
//duong bien
output_bit(DB0,PIN[0]);
output_bit(DB1,PIN[1]);
output_bit(DB2,PIN[2]);
//noi dung 2
output_bit(PIN_C2,PIN[3]);
output_bit(PIN_C1,PIN[3]);
}
void main()
{
setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_wdt( WDT_2304MS);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_adc_channel(0);
delay_ms(10);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab
// TODO: USER CODE!!
while (TRUE)
{
restart_wdt();
Calculate_delay();
Duong_bien();
Hu1();
Out_led();
}
}SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Cái chương trình trên là dùng ADC để chỉnh tốc độ chạy của hiệu ứng chứ không phải để PWM. Lưu ý là tui lập trinh cho LED thì xử lý data trên RAM (khai báo 1 mảng), mục đích là có nhiều hiệu ứng, có thể tạo 1 library (giống như lbrary có sẵn của PIC C Compiler) để sau này có thể sử dụng cho nhiều khách hàng khác nhau, nhiều bảng khác nhau mà k cần chỉnh sửa gì nhiều. CÒn việc xuất dữ liệu đó ra chân nào là việc của hàm "OUT_LED". Chính vì vậy có thể PWM từ hàm OUT_LED. Như vậy các PIN cần PWM thì đưa vào hàm IF, các chân không PWM thì nằm ngoài hàm IF.
void OUT_LED()
{
//các PIN không PWM
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_A2,PIN_PRE[1]);
output_bit(PIN_A3,PIN_PRE[2]);
//các PIN cần PWM thì đưa vào đây
if (A_TIMER<BBBB)
{
output_bit(PIN_C0,PIN_PRE[10]);
output_bit(PIN_C1,PIN_PRE[11]);
output_bit(PIN_C2,PIN_PRE[12]);
}
else
{
output_bit(PIN_C0,OFF);
output_bit(PIN_C1,OFF);
output_bit(PIN_C2,OFF);
}
}
Nếu bạn cần PWM cho 15 PIN thì đưa 15 PIN đó vào hàm if, các chân không PWM nằm ngoài hàm if.
Chốt lại là bạn muốn dùng PWM để điều chỉnh độ sáng của LED đúng k và các chân đó không có chức năng PWM!! Nếu cảm thấy k đúng thì tui sorry vậy, nếu đúng thì cách của tui vừa xử lý hiệu ứng, vừa PWM (tạm chấp chận cho LED được thì tần số không được cao). Nếu cần 1 cái PWM mẫu thì tui có thể viết cho bạn được để test chạy thử.Last edited by kevo1tinh; 05-09-2014, 17:21.
Comment
-
Nguyên văn bởi kevo1tinh Xem bài viếtCái chương trình trên là dùng ADC để chỉnh tốc độ chạy của hiệu ứng chứ không phải để PWM. Lưu ý là tui lập trinh cho LED thì xử lý data trên RAM (khai báo 1 mảng), mục đích là có nhiều hiệu ứng, có thể tạo 1 library (giống như lbrary có sẵn của PIC C Compiler) để sau này có thể sử dụng cho nhiều khách hàng khác nhau, nhiều bảng khác nhau mà k cần chỉnh sửa gì nhiều. CÒn việc xuất dữ liệu đó ra chân nào là việc của hàm "OUT_LED". Chính vì vậy có thể PWM từ hàm OUT_LED. Như vậy các PIN cần PWM thì đưa vào hàm IF, các chân không PWM thì nằm ngoài hàm IF.
void OUT_LED()
{
//các PIN không PWM
output_bit(PIN_A1,PIN_PRE[0]);
output_bit(PIN_A2,PIN_PRE[1]);
output_bit(PIN_A3,PIN_PRE[2]);
//các PIN cần PWM thì đưa vào đây
if (A_TIMER<BBBB)
{
output_bit(PIN_C0,PIN_PRE[10]);
output_bit(PIN_C1,PIN_PRE[11]);
output_bit(PIN_C2,PIN_PRE[12]);
}
else
{
output_bit(PIN_C0,OFF);
output_bit(PIN_C1,OFF);
output_bit(PIN_C2,OFF);
}
}
Nếu bạn cần PWM cho 15 PIN thì đưa 15 PIN đó vào hàm if, các chân không PWM nằm ngoài hàm if.
Chốt lại là bạn muốn dùng PWM để điều chỉnh độ sáng của LED đúng k và các chân đó không có chức năng PWM!! Nếu cảm thấy k đúng thì tui sorry vậy, nếu đúng thì cách của tui vừa xử lý hiệu ứng, vừa PWM (tạm chấp chận cho LED được thì tần số không được cao). Nếu cần 1 cái PWM mẫu thì tui có thể viết cho bạn được để test chạy thử.SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Anh kevo1tinh cho e hỏi là:
E băm xung PWM vào chân OE của 3 con 74595 cho led ma trận 8*8 2 màu RG để ra được 3 màu ,thì 3 con 74595 có dịch bit và đẩy bit kịp tốc độ của xung PWM không ạ (PWM đủ lớn để ra 24 hình/giây).À e hỏi thêm là phải băm xung PWM vào chân OE của cả 3 con hay chỉ cần cho con 595 đầu tiên ạ ?
Cảm ơn aLast edited by toan.ndn; 30-10-2014, 22:37.
Comment
-
Nguyên văn bởi toan.ndn Xem bài viếtAnh kevo1tinh cho e hỏi là:
E băm xung PWM vào chân OE của 3 con 74595 cho led ma trận 8*8 2 màu RG để ra được 3 màu ,thì 3 con 74595 có dịch bit và đẩy bit kịp tốc độ của xung PWM không ạ (PWM đủ lớn để ra 24 hình/giây).À e hỏi thêm là phải băm xung PWM vào chân OE của cả 3 con hay chỉ cần cho con 595 đầu tiên ạ ?
Cảm ơn a
- Sử dụng 2 kênh ccp1 và ccp2 để PWM cho 2 con 595, như thế thì phần mềm bạn rảnh việc để làm chuyện khác, đồng thời tần số cao sẽ giúp chuyển màu mềm mại hơn.
- Các tín hiệu điều khiển cho 2 con 595 này nên đấu song song (RCK,SCK), còn chân DS thì đấu riêng, OE thì đưa vào ccp, mỗi lần tạo clk để dịch bit, bạn sẽ dịch được 2 bit, sẽ tăng được tốc độ dịch bit và dư thời gian để làm việc khác.
- Điều hiển nhiên cách này theo phần cứng của bạn, điểm hạn chế của nó là bạn k thể tạo màu khác nhau cho từng pixel được.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -
-
bởi namlangnhoXin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 00:12 -
-
bởi Manh.n.trCác bác cho em hỏi cách điều chế xung răng cưa sang xung vuông với ạ. Em đang thấy khó ạ...
-
Channel: Kỹ thuật điện tử tương tự
13-12-2024, 20:46 -
-
Trả lời cho hỏi về thiết kế mạch tuần tự trên proteusbởi Hatruong1309
-
Channel: Hỗ trợ học tập
12-12-2024, 00:33 -
Comment