Bác nào có thể post hướng dẫn về giao tiếp 1-dây được ko??? cụ thể là giao tiếp với ds1820. Mình cần 1 đoạn code mẫu (bằng asm) về giao tiếp này, thanks nhiều. Mình search nhiều trên net nhưng chỉ thấy nói ko à chứ ko có bài hướng dẫn cụ thể về loại giao tiếp này.
Thông báo
Collapse
No announcement yet.
Hướng dẫn giúp mình về giao tiếp one-wire (với ds1820)
Collapse
X
-
Nguyên văn bởi vodangks Xem bài viếtBác nào có thể post hướng dẫn về giao tiếp 1-dây được ko??? cụ thể là giao tiếp với ds1820. Mình cần 1 đoạn code mẫu (bằng asm) về giao tiếp này, thanks nhiều. Mình search nhiều trên net nhưng chỉ thấy nói ko à chứ ko có bài hướng dẫn cụ thể về loại giao tiếp này.Attached Files
-
-
Mấy bạn nói rõ hơn 1 chút về giao tiếp 1 dây này dc ko, mình xem toàn tiếng Anh, chả hiểu mù gì
À mà mình tìm dc 1 project dùng ds1820 nhưng code của nó lại có đuôi .a51 nên ko biết mở thế nào
http://www.8051projects.info/proj.asp?ID=75
Comment
-
Nguyên văn bởi tranpic Xem bài viếtmình chỉ có source C thôi
Comment
-
tui lượm được trên mạng đoạn code này các bạn tham khảo nhé. Không chắc đúng đâu. Tui nghiên cứu lại rồi post sau.
;; Dallas DS1820 multidrop routines using timer 0 in mode 3 for MCS51
;; External power for DS1820 assumed
;; Clock is 11.0592 MHz -> one cycle is 1.0850694 us
;; Copyright 1999, Leon Kos, University of Ljubljana
;; TODO: Initial check routines for external power on each device
;; $Id: ds1820.asm,v 1.2 2003/09/13 15:31:57 leon Exp $
NAME DS1820
APD BIT 0F8h ; P5.0 driving gate of the DMOS for
READ BIT 0EFh ; P4.7 reading response from slaves
ds1820_routines SEGMENT CODE
T1_interrupt SEGMENT CODE
ds1820rom SEGMENT CODE
dowcrc SEGMENT CODE
ds1820data SEGMENT DATA
bitvar SEGMENT BIT
public ds1820_init
public _ds1820_start
public touch_byte
public convert_time
public ds1820error
public scratchpad
public ds1820crc_ok
public errornum
public ds1820device
CSEG AT 0001BH
jmp timer1
RSEG T1_interrupt
timer1:
push acc ; 2
push psw ; 2
push dpl ; 2
push dph ; 2
jnb bit_state, matchROM_loop
bit_loop: ; bit writing/reading loop
clr APD
setb bit_state ; enable this state
mov c, read_slot
mov a, touch_byte
rrc a
mov touch_byte, a
djnz bitcnt, touch_bit
mov bitcnt, #9
clr bit_state
jmp exit_t1
touch_bit:
setb APD ; 1T
nop ; 1T
nop
nop
nop ; 1T
cpl c ; 1T
mov APD, c ; 1T
nop
nop
nop
nop
nop
nop
nop
mov c, READ
mov read_slot, c
mov TH0, #(0FFh - 30)
pop dph ; 2
pop dpl ; 2
pop psw ; 2
pop acc ; 2
reti
matchROM_loop:
jnb matchROM_state, reset_state_loop
mov a, loop ; test the loop counter
clr C ; clear for one byte substraction
subb a, #8 ; loop couner in incrementing
jz _rom_end ; substract to match zero at end
mov dptr, #rom_table; point to in CODE device table
mov a, ds1820device ; which device
rl a ; address
rl a ; is multiple of
rl a ; 8 offset
add a, loop ; select byte from table
movc a, @a+dptr
mov touch_byte, a
inc loop
jmp bit_loop
_rom_end:
clr matchROM_state
inc state
jmp state_loop
reset_state_loop:
jnb reset_state, state_loop
mov a, loop
dec a
jz _reset_end
mov loop, a
add a, #254
jnz _rst0
clr APD
_rst0: jmp exit_t1
_reset_end:
clr reset_state
inc state
state_loop: ; Main state machine loop
mov a, state ; must be in the middle
mov dptr, #jump_table; of the code
movc a, @a+dptr
jmp @a+dptr
jump_table:
db reset0 - jump_table
db match_rom0 - jump_table
db convertT - jump_table
db readbusy - jump_table
db reset1 - jump_table
db match_rom1 - jump_table
db read_scratchpad - jump_table
db temp_lsb - jump_table
db temp_msb - jump_table
db user_byte1 - jump_table
db user_byte2 - jump_table
db reserved1 - jump_table
db reserved2 - jump_table
db count_remain - jump_table
db count_per_c - jump_table
db crc - jump_table
db stop - jump_table
reset0:
mov loop, #4
setb reset_state
mov TH0, #(255-200) ; first half of the reset time
setb APD
jmp exit_t1
match_rom0:
mov touch_byte, #55h
mov loop, #0
setb matchROM_state
jmp bit_loop
convertT:
mov touch_byte, #44h
inc state
mov convert_time, #00h
mov convert_time + 1, #00h
jmp bit_loop
readbusy: ; check every 280us
inc convert_time + 1;
mov a, convert_time + 1
jnz _noinc
inc convert_time
mov a, #12h ; 12*72ms=860ms overrun
anl a, convert_time
jz _noinc
setb ds1820error ; short circuit
mov errornum, #1 ; to long zero resonse
jmp end_t1
_noinc: mov a, touch_byte
mov touch_byte, #0FFh
inc a
jz converted
jmp bit_loop
converted:
clr C
inc state
reset1:
mov loop, #4
setb reset_state
mov TH0, #(255-200) ; first half of the reset time
setb APD
jmp exit_t1
match_rom1:
mov touch_byte, #55h
mov loop, #0
setb matchROM_state
jmp bit_loop
read_scratchpad:
mov touch_byte, #0BEh
inc state
jmp bit_loop
temp_lsb: ; larger but easy to fetch bytes
mov touch_byte, #0FFh
inc state
jmp bit_loop
temp_msb:
mov scratchpad, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
user_byte1:
mov scratchpad + 1, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
user_byte2:
mov scratchpad + 2, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
reserved1:
mov scratchpad + 3, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
reserved2:
mov scratchpad + 4, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
count_remain:
mov scratchpad + 5, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
count_per_c:
mov scratchpad + 6, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
crc:
mov scratchpad + 7, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
stop:
mov scratchpad + 8, touch_byte
end_t1:
clr ET1 ; disable interrupt
clr TR1 ; stop the timer
mov state, #0 ; reset the machine state
clr APD ; power the line
exit_t1: ; exit from interrupt
pop dph ; 2
pop dpl ; 2
pop psw ; 2
pop acc ; 2
reti
RSEG ds1820_routines
ds1820_init: ; initialize the variables
mov bitcnt, #9 ; bit counter
clr APD ; power the devices on line
setb READ ; enable reading
clr matchROM_state ; not sending match ROM to ds1820
clr bit_state ; not in the bit delay state
clr reset_state ; not in the reset state
mov state, #0 ; clear machine state
mov ds1820device,#0 ; default is reading device0
anl TMOD, #0f0h ; timer 0
orl TMOD, #03h ; in mode 3
setb EA ; Enable interrupts
ret
_ds1820_start: ; R7 has the device number to read
mov ds1820device,R7
mov TH0,#0FAh
clr ds1820error ; no error at beginning
mov errornum, #0
setb ET1
setb TR1
ret
RSEG dowcrc
ds1820crc_ok: ; extern bit ds1820crc_ok(void);
mov loop, #9 ; 8+1 byte CRC
mov ds1820crc, #0 ; clear CRC register
mov dptr, #dowcrc_table
mov r0, #scratchpad
_crc:
mov a, @r0 ; scratchad value
xrl a, ds1820crc
movc a, @a+dptr
mov ds1820crc, a
inc r0
djnz loop, _crc
jz _ok
clr CY
ret
_ok: setb CY
ret
dowcrc_table: DB 0, 94, 188, 226, 97, 63, 221, 131
DB 194, 156, 126, 32, 163, 253, 31, 65
DB 157, 195, 33, 127, 252, 162, 64, 30
DB 95, 1, 227, 189, 62, 96, 130, 220
DB 35, 125, 159, 193, 66, 28, 254, 160
DB 225, 191, 93, 3, 128, 222, 60, 98
DB 190, 224, 2, 92, 223, 129, 99, 61
DB 124, 34, 192, 158, 29, 67, 161, 255
DB 70, 24, 250, 164, 39, 121, 155, 197
DB 132, 218, 56, 102, 229, 187, 89, 7
DB 219, 133, 103, 57, 186, 228, 6, 88
DB 25, 71, 165, 251, 120, 38, 196, 154
DB 101, 59, 217, 135, 4, 90, 184, 230
DB 167, 249, 27, 69, 198, 152, 122, 36
DB 248, 166, 68, 26, 153, 199, 37, 123
DB 58, 100, 134, 216, 91, 5, 231, 185
DB 140, 210, 48, 110, 237, 179, 81, 15
DB 78, 16, 242, 172, 47, 113, 147, 205
DB 17, 79, 173, 243, 112, 46, 204, 146
DB 211, 141, 111, 49, 178, 236, 14, 80
DB 175, 241, 19, 77, 206, 144, 114, 44
DB 109, 51, 209, 143, 12, 82, 176, 238
DB 50, 108, 142, 208, 83, 13, 239, 177
DB 240, 174, 76, 18, 145, 207, 45, 115
DB 202, 148, 118, 40, 171, 245, 23, 73
DB 8, 86, 180, 234, 105, 55, 213, 139
DB 87, 9, 235, 181, 54, 104, 138, 212
DB 149, 203, 41, 119, 244, 170, 72, 22
DB 233, 183, 85, 11, 136, 214, 52, 106
DB 43, 117, 151, 201, 74, 20, 246, 168
DB 116, 42, 200, 150, 21, 75, 169, 247
DB 182, 232, 10, 84, 215, 137, 107, 53
alternate_dowcrc: ; slower and thus not used
mov ds1820crc, #0
mov loop, #8 ; 8 bytes
mov r0, #scratchpad
_dcrc: mov a, @r0
call do_crc
inc r0
djnz loop, _dcrc
ret
do_crc: push acc
push b
push acc
mov b, #8
crc_loop:
xrl a, ds1820crc
rrc a
mov a, ds1820crc
jnc zero
xrl a, #18h
zero: rrc a
mov ds1820crc, a
pop acc
rr a
push acc
djnz b, crc_loop
pop acc
pop b
pop acc
ret
RSEG ds1820data
bitcnt: ds 1 ; bit couter
touch_byte: ds 1 ; touch byte
scratchpad: ds 9 ; DS1820 scratchpad
convert_time: ds 2 ; time required for conversion
state: ds 1 ; machine state
loop: ds 1 ; shared byte for loops
errornum: ds 1 ; error number
ds1820device: ds 1 ; which device number 0,1,...
ds1820crc: ds 1 ; DOW 8 bit CRC value
RSEG bitvar
read_slot: DBIT 1 ; read bit from ds1820
bit_state: DBIT 1 ; delaying one bit state
matchROM_state: DBIT 1 ; sending MATCH ROM state
reset_state: DBIT 1 ; resetting the bus state
ds1820error: DBIT 1 ; error getting temperature
RSEG ds1820rom
rom_table: ; avalable devices on the 1-wire net
device0: DB 10h, 09Ah, 4Bh, 09h, 00h, 00h, 00h, 08Fh
device1: DB 10h, 088h, 3Dh, 0Ch, 00h, 00h, 00h, 0CAh
device2: DB 10h, 05Bh, 49h, 09h, 00h, 00h, 00h, 0A4h
device3: DB 10h, 022h, 49h, 09h, 00h, 00h, 00h, 0AAh
device4: DB 10h, 0DAh, 4Ah, 09h, 00h, 00h, 00h, 037h
device5: DB 10h, 099h, 48h, 09h, 00h, 00h, 00h, 098h
device6: DB 10h, 021h, 47h, 09h, 00h, 00h, 00h, 051h
device7: DB 10h, 0EEh, 47h, 09h, 00h, 00h, 00h, 0EAh
device8: DB 10h, 06Eh, 47h, 09h, 00h, 00h, 00h, 000h
device9: DB 10h, 0D3h, 49h, 09h, 00h, 00h, 00h, 0EFh
device10: DB 10h, 09Ah, 47h, 09h, 00h, 00h, 00h, 0AEh
device11: DB 10h, 0B1h, 4Ah, 09h, 00h, 00h, 00h, 00Ch
device12: DB 10h, 08Bh, 4Ah, 09h, 00h, 00h, 00h, 02Eh
device13: DB 10h, 03Ch, 4Bh, 09h, 00h, 00h, 00h, 061h
device14: DB 10h, 074h, 49h, 09h, 00h, 00h, 00h, 036h
device15: DB 10h, 024h, 48h, 09h, 00h, 00h, 00h, 0D5h
device16: DB 10h, 057h, 49h, 09h, 00h, 00h, 00h, 0D9h
device17: DB 10h, 050h, 04h, 0B0h,90h, 00h, 00h, 0DFh
END
Comment
-
Nguyên văn bởi thangdt2 Xem bài viếtko có code của C à bạn ơi, mình xem code asm chả hiểu gì cả
Comment
-
Cách giao tiếp với DS1820 có thể tóm tắt và hiểu nôm na như sau:
Việc đo nhiệt độ của DS1820 theo tôi được thực hiện theo từng phiên làm việc và mỗi phiên được ngăn cách với phiên làm việc trước bởi 1 tín hiệu reset và 1 presence pulse. Reset được xem như quá trình ngăn cách và khởi động lại quá trình đo nhiệt độ mới, presence pulse giống như tín hiệu báo hiệu cho 8051 biết là DS1820 đang có mặt và đã sẵn sàng. Ở đây mình thực hiện đo nhiệt độ và hiển thị đơn giản nhất với 1 con DS1820 thôi. Do đó có thể bỏ qua các phần : match ROM, search Rom, alarm search, hay read ROM… (các bạn có thể đọc thêm phần này trong datasheet và thực hiện nhưng với mạch chỉ đo nhiệt độ thôi thì không cần thiết…)
Reset: đặt chân data xuống mức thấp trong khoảng 480-960us (dùng 500us là ok)
Đặt chân data lên mức cao trong khoảng 15-60us
Presence pulse: sau khi cho chân đó lên mức cao tiếp tục chờ 60-240us để bắt tín hiệu mức thấp do DS1820 kéo xuống trong khoảng thời gian trên. Bắt được tín hiệu này tức là DS1820 sẵn sàng.
Skip ROM: skip ROM để khỏi mất thời gian match ROM … vì chỉ có 1 con thôi khi nào xài nhiều con trên 1 đường dây mới cần match, thực hiện bằng cách nhảy tới chương trình con write và ghi mã skip ROM (CCh) vào data line.
Write: clear dataline và delay trong 15us rồi mới đặt bit cần ghi lên và delay 15us nữa, giữa 2 bit cần ghi liên tiếp phải đặt data line lên mức cao trong 1us và tiếp tục ghi bit tiếp theo.
Gửi lệnh read scratchpad và đọc dữ liệu về 2 lần, lần đầu lấy byte thấp (chứa giá trị nhiệt độ lưu lại trong thanh ghi R3 lát nữa xử lý sau) lần sau lấy byte cao(chứa dấu của nhiệt độ nếu chỉ đo trong khoảng 0-125 độ thì không cần đọc byte này), sau đó đọc tiếp 7 lần nữa để địa chỉ đọc trở về ban đầu.
Read: clear data line trong 1us và đọc dữ liệu về trong vòng 15us giữa 2 lần đọc phải cách nhau <1us (lấy 2us là được) rồi lại đọc tiếp.
Convert T: trước khi conv phải reset trước, chờ presence rồi skip ROM, sau đó gửi convert command (44h).
Giờ là lúc xử lý thanh ghi R3 đã lưu giá trị nhiệt độ. Có nhiều cách xử lý các bạn hãy nghiên cứu khung dữ liệu của nó và xử lý theo cách riêng để tách giá trị ra. Sau đó chuyển giá trị thành mã BCD rồi xuất ra led hay LCD tùy ý.
Đó là toàn bộ các bước thực hiện giao tiếp với DS1820. Chúc các bạn thành công.
Comment
-
bác nào làm DS1820 rồi thì xem hộ em doạn code này em sai ở đâu mà không chay!
#include <sfr51.inc>
org 0000H
ljmp main
org 0040H
main:
lcall donhietdo
mov p3,r3
sjmp main
reset:
setb p3.0
mov R1,#4
loop1:mov R2,#40
loop2:
clr p3.0
djnz R2,loop2
djnz R1,loop1
lcall delay60us
;doi presence pulse
lcall delay60us
lcall delay60us
lcall delay60us
lcall delay60us
ret
delay60us:
mov R1,#30
lop:djnz r1,lop
ret
delay15us:
mov R1,#7
lop2:djnz r1,lop2
ret
delay45us:
mov R1,#22
lop3:djnz r1,lop3
ret
ghi1:
setb p3.0
clr p3.0
; ghi 1
lcall delay60us
ret
ghi0:
setb p3.0 ;
mov R1,#20
lop1:
clr p3.0 ; ghi 0
djnz r1,lop1
ret
skiprom:
lcall ghi1
lcall ghi1
lcall ghi0
lcall ghi0
lcall ghi1
lcall ghi1
lcall ghi0
lcall ghi0
ret
convertT:
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi0
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi0
ret
readscratchpad:
lcall ghi1
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi1
lcall ghi1
lcall ghi1
lcall ghi0
ret
readbit:
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g1
clr B.0
sjmp gb1
g1: setb B.0
gb1:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g2
clr B.1
sjmp gb2
g2: setb B.1
gb2:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g3
clr B.2
sjmp gb3
g3: setb B.2
gb3:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g4
clr B.3
sjmp gb4
g4: setb B.3
gb4:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g5
clr B.4
sjmp gb5
g5: setb B.4
gb5:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g6
clr B.5
sjmp gb6
g6: setb B.5
gb6:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g7
clr B.6
sjmp gb7
g7: setb B.6
gb7:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g8
clr B.7
sjmp gb8
g8: setb B.7
gb8:
lcall delay45us
ret
donhietdo:
lcall reset
aa: jnb p3.0,aa
lcall skiprom
lcall convertT
lcall readbit
lcall reset
bb: jb p3.0,bb
lcall skiprom
lcall readbit
mov r3,B
mov r7,#8
doc8byte:
lcall readbit
djnz r7,doc8byte
lcall reset
aaa: jb p3.0,aaa
ret
end
Comment
-
donhietdo:
lcall reset
aa: jnb p3.0,aa
lcall skiprom
lcall convertT
lcall readbit
lcall reset
bb: jb p3.0,bb
lcall skiprom
lcall readbit
mov r3,B
mov r7,#8
doc8byte:
lcall readbit
djnz r7,doc8byte
lcall reset
aaa: jb p3.0,aaa
ret
sau lệnh mov r3,B em thêm lệnh mov p2,r3 để test xem co dọc dc gì không nhưng chả thấy đọc được cái gì cả!
Comment
-
Nguyên văn bởi vt04 Xem bài viếtCách giao tiếp với DS1820 có thể tóm tắt và hiểu nôm na như sau:
Việc đo nhiệt độ của DS1820 theo tôi được thực hiện theo từng phiên làm việc và mỗi phiên được ngăn cách với phiên làm việc trước bởi 1 tín hiệu reset và 1 presence pulse. Reset được xem như quá trình ngăn cách và khởi động lại quá trình đo nhiệt độ mới, presence pulse giống như tín hiệu báo hiệu cho 8051 biết là DS1820 đang có mặt và đã sẵn sàng. Ở đây mình thực hiện đo nhiệt độ và hiển thị đơn giản nhất với 1 con DS1820 thôi. Do đó có thể bỏ qua các phần : match ROM, search Rom, alarm search, hay read ROM… (các bạn có thể đọc thêm phần này trong datasheet và thực hiện nhưng với mạch chỉ đo nhiệt độ thôi thì không cần thiết…)
Reset: đặt chân data xuống mức thấp trong khoảng 480-960us (dùng 500us là ok)
Đặt chân data lên mức cao trong khoảng 15-60us
Presence pulse: sau khi cho chân đó lên mức cao tiếp tục chờ 60-240us để bắt tín hiệu mức thấp do DS1820 kéo xuống trong khoảng thời gian trên. Bắt được tín hiệu này tức là DS1820 sẵn sàng.
Skip ROM: skip ROM để khỏi mất thời gian match ROM … vì chỉ có 1 con thôi khi nào xài nhiều con trên 1 đường dây mới cần match, thực hiện bằng cách nhảy tới chương trình con write và ghi mã skip ROM (CCh) vào data line.
Write: clear dataline và delay trong 15us rồi mới đặt bit cần ghi lên và delay 15us nữa, giữa 2 bit cần ghi liên tiếp phải đặt data line lên mức cao trong 1us và tiếp tục ghi bit tiếp theo.
Gửi lệnh read scratchpad và đọc dữ liệu về 2 lần, lần đầu lấy byte thấp (chứa giá trị nhiệt độ lưu lại trong thanh ghi R3 lát nữa xử lý sau) lần sau lấy byte cao(chứa dấu của nhiệt độ nếu chỉ đo trong khoảng 0-125 độ thì không cần đọc byte này), sau đó đọc tiếp 7 lần nữa để địa chỉ đọc trở về ban đầu.
Read: clear data line trong 1us và đọc dữ liệu về trong vòng 15us giữa 2 lần đọc phải cách nhau <1us (lấy 2us là được) rồi lại đọc tiếp.
Convert T: trước khi conv phải reset trước, chờ presence rồi skip ROM, sau đó gửi convert command (44h).
Giờ là lúc xử lý thanh ghi R3 đã lưu giá trị nhiệt độ. Có nhiều cách xử lý các bạn hãy nghiên cứu khung dữ liệu của nó và xử lý theo cách riêng để tách giá trị ra. Sau đó chuyển giá trị thành mã BCD rồi xuất ra led hay LCD tùy ý.
Đó là toàn bộ các bước thực hiện giao tiếp với DS1820. Chúc các bạn thành công.Last edited by vodangks; 02-02-2009, 22:15.
Comment
-
Nguyên văn bởi vodangks Xem bài viếtBạn có thể minh họa bằng code asm được ko (dùng 8051), thanks nhiều!!!
Comment
-
Nguyên văn bởi phamthaihoa Xem bài viếtBạn google đi, có rất nhiều sample code giao tiếp one-wire với 8051. Nếu viết bằng PIC dùng C thì tớ có, cái one-wire này chỉ chuối mỗi cái là phải là viết hàm relay thật chuẩn, không đúng timing là chạy bằng vành ngay
Comment
Bài viết mới nhất
Collapse
-
bởi bqvietServo cuối cùng vẫn chỉ là điều chỉnh tốc độ và đọc phản hồi vị trí
Qua cổng song song LPT cổ
https://www.electronicsforu.com/elec...eed-controller
Qua cổng USB - xem thêm đám FT232RL-
Channel: Điện tử công nghiệp
22-11-2024, 15:56 -
-
bởi thiennam0703Em đang tìm hiểu cách xây dựng chương trình điều khiển động cơ Servo Yaskawa bằng máy tính tuy nhiên khi tìm kiếm trên mạng các hướng dẫn thì thường là điều khiển bằng vi điều khiển hoặc điều khiển bằng PLC hay điều khiển động cơ...
-
Channel: Điện tử công nghiệp
22-11-2024, 15:32 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi bacthoMình cũng bị như vậy mà chưa biết ở đâu
-
Channel: Vi điều khiển AVR
21-11-2024, 21:00 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi nhathung1101Câu trả lời là không dùng được.
Hai lớp dán mặt trước và mặt sau, gọi là film phân cực. Muốn hiểu rõ về nó thì chịu khó search nhé. Ở đây có rất nhiều chó cứ ngửi thấy phân là sủa nhặng, nên không giải thích nhiều....-
Channel: Thiết bị điện tử cá nhân
21-11-2024, 16:20 -
-
Comment on Tổng hợp các thông tin về mạch nạp cho AVRbởi Memem
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi MememMọi người ơi cho em hỏi cái này ạ, hiện tại em đang làm btl về hiển thị giá trị nhiệt độ trên led 7 thanh sử dụng atmega16, code em chạy trên mô phỏng rất oke nhưng khi lắp qua mạch thực thì bị lỗi ở led đầu tiên bị lỗi như thế này...
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
bởi mantruongepuNhờ cả nhà tìm giúp mình thông tin IC này với, thấy ghi 943B W58BAL mà mình tìm mấy ngày nay không được, nó được đóng gói dạng TSSOP 8. Cám ơn cả nhà....
-
Channel: Điện tử dành cho người mới bắt đầu
20-11-2024, 14:40 -
-
bởi TherulCảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
-
Channel: từ PIC tới dsPIC
20-11-2024, 07:20 -
-
Trả lời cho Em muốn hỏi mọi người về nguyên lý hoạt động, tần số của mạch công suất trong máy rửa siêu âm ạ.bởi nguyendinhvanBạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...-
Channel: Hỗ trợ học tập
19-11-2024, 22:44 -
Comment