Thankyou for your contribution. We never forget! Keep good work!!!
Thông báo
Collapse
No announcement yet.
tutorial cho HTPIC
Collapse
X
-
Chào các bạn.
Mình thấy quyển manual complier của bọn HTsoft cũng khá hay và đầy đủ chú ý. Do đó, thấy cái gì hay hay mình viết rùi các bạn góp ý kiến nhá. Có lẽ mình cũng nên lập thư viện cho HTPIC chứ nhỉ?? Thấy anh em dùng CCS hoạt động kinh quá .
Đầu tiên là cách khai báo một biến đặt tại một địa chỉ nhất định trong RAM.
Ví dụ, muốn Portvar là biến đặt tại địa chỉ 0x06 thì trong ASM ta dùng lệnh sau:
Code:_Portvar EQU 06h
Trong HTPIC các bạn khai báo như sau:
Code:volatile unsigned char Portvar @ 0x06;
Chúc các bạn thành công.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
Thư viện LCD 16x2 8bit mode.
Mình xin upload thư viện viết cho LCD, ở đây mình dùng 8 bit mode cho LCD 2 line x 16 colum.
Code:// LCD.h #ifndef LCD_H #define LCD_H # include <pic.h> //============== Using LCD - 2 line, 16 colum #define LCD_MODE_2x16 (TRUE) // HDM16216H-2, HDM16216H-4, HDM16216H-5, HDM16216H-B, HDM16216H-D, HDM16216L-2, HDM16216L-5, HDM16216L-7, HDM16216L-D, HDM16216L-B, HDM16216H-I #define LCD_CURSOR_BLINK (FALSE) // Blink/Noblink cursor mode #define LCD_CURSOR_ON (TRUE) // Cursor visible #define LCD_CURSOR_INCREMENT (TRUE) // Set left-to-right cursor movement #define LCD_CURSOR_SHIFT (FALSE) // Shift display on entry #define LCD_DISPLAY_ON (TRUE) // Turn display on/off #define LCD_ALLOW_USER_CHARS (TRUE) // Controls whether display uses ASCII for control chars or uses user-defined chars in lcd_putc() #define LCD_ENABLE_GETC (TRUE) // Save code space by setting to FALSE #define LCD_ENABLE_GOTOXY (TRUE) // any functions which you will not #define LCD_ENABLE_PRINTF (TRUE) // need in your application. #define LCD_ENABLE_UNSCROLL (TRUE) #define LCD_ENABLE_SCROLL (TRUE) #define LCD_ENABLE_CLEAR (TRUE) #define LCD_MAXROWS ((unsigned char)(2)) #define LCD_MAXCOLS ((unsigned char)(16)) # define LCD_MULTI_LINE (TRUE) #define LCD_8_BIT_MODE (TRUE) //======================= Define LCD_PORT #define LCD_DATA_PORT PORTD // Port on which LCD data lines are connected #define LCD_TRIS_PORT TRISD // Need to specify the corresponding TRIS # define LCD_RS RA1 # define LCD_RW RA2 # define LCD_E RA3 # define LCD_TRIS_E TRISA1 # define LCD_TRIS_RW TRISA3 # define LCD_TRIS_RS TRISA2 // ======================= Define command code #define LCD_COMMAND_CLEAR ((unsigned char)(0x01)) //1.53 ms // Clear screen, home cursor, unshift display #define LCD_COMMAND_HOME ((unsigned char)(0x02)) //1.53 ms // Home cursor, unshift display #define LCD_COMMAND_BACKSPACE ((unsigned char)(0x10)) // Move cursor left one (destructive based on LCD_DESTRUCTIVE_BS) #define LCD_COMMAND_FWDSPACE ((unsigned char)(0x14)) // Move cursor right one #define LCD_COMMAND_PANLEFT ((unsigned char)(0x18)) // Move screen left one #define LCD_COMMAND_PANRIGHT ((unsigned char)(0x1C)) // Move screen right one // ==================== Declare some functions void delay_us (unsigned char us); void delay_ms(unsigned char ms); unsigned char LCD_getByte (void); void LCD_PrByte (unsigned char c); void LCD_Command(unsigned char c); void LCD_PrChar (unsigned char c); void LCD_gotoXY(unsigned char row, unsigned char col); unsigned char LCD_getChar (void); // Read character at cursor void LCD_Init(void); void LCD_PrString (const char* message); #endif
Các bước thực hiện:
- Khởi tạo LCD dùng lệnh: LCD_Init();
- Thao tác ghi đọc bình thường, chú ý nhất là các hàm: LCD_gotoXY, LCD_PrString, LCD_PrChar, LCD_Command.
Tiếp theo là file LCD.c là file thực hiện:
Code://LCD.c # include "lcd.h" // ==== Some constants for LCD 16x2 const unsigned char const LCD_ROW_ADDRESS[] = // Row/Column information for LCD_gotoxy() { 0x00, // Line 1 0x40 // Line 2 }; const unsigned char const LCD_INIT_STRING [] = // LCD Init String on powerup { 0b00000001, // Clear display 0b00000010, // Home cursor }; //========================================================================================== void delay_us (unsigned char us){ while(us--){ asm("nop"); asm("nop"); }; } //========================================================================================== void delay_ms(unsigned char ms){ unsigned char i, j; while(ms--){ for (i = 0; i < 20; i++) for (j = 0; j < 100; j++) asm("nop"); }; } // ============================================================================================ unsigned char LCD_getByte (void){ unsigned char retval; // Return value LCD_TRIS_PORT = 0xFF; // Set port to all input LCD_RW = 1; // Tell LCD we want to read delay_us(2); LCD_E = 1; // Do the read delay_us(2); retval = LCD_DATA_PORT; LCD_E = 0; LCD_TRIS_PORT = 0x00; // Set port back to outputs return (retval); } //==================================================================================================== void LCD_PrByte (unsigned char c){ // Write byte to port in current RS mode unsigned char RS_Status; RS_Status = LCD_RS; // Get old pin state LCD_RS = 0; // Force into command mode to read state while (LCD_getByte () & 0x80); // Wait for read state if (RS_Status) LCD_RS = 1; // Restore RS to old state delay_us (1); LCD_RW = 0; // Set to write mode delay_us (1); LCD_DATA_PORT = c; // Send the character out LCD_E = 1; delay_us(1); LCD_E = 0; } //================================================================================================ /*Ham yeu cau goi lenh dieu khien LCD*/ void LCD_Command(unsigned char c){ // Send command to LCD port LCD_RS = 0; LCD_PrByte(c); } //================================================================================================ /*Ham yeu cau goi du lieu hien thi len LCD*/ void LCD_PrChar (unsigned char c){ // Write character to LCD LCD_RS = 1 ; LCD_PrByte(c); } //================================================================================================= void LCD_gotoXY(unsigned char row, unsigned char col){ if (row > LCD_MAXROWS) // Range limit row = LCD_MAXROWS; if (col > LCD_MAXCOLS) col = LCD_MAXCOLS; row = LCD_ROW_ADDRESS[row-1]; // Get address of first byte on desired row row += col - 1; LCD_Command (0x80 | row); // Write new cursor address } // ===================================================================================== unsigned char LCD_getChar (void) // Read character at cursor { unsigned char retval; // Return value LCD_RS = 1; retval = LCD_getByte (); LCD_RS = 0; return (retval); } //======================================================================================= void LCD_Init(void){ unsigned char i; LCD_TRIS_PORT = 0x00; LCD_TRIS_E = 0; LCD_TRIS_RW = 0; LCD_TRIS_RS = 0; LCD_E = 0 ; LCD_RS = 0; LCD_RW = 0; //delay_ms(100); // Tao tre 100ms cho LCD khoi dong LCD_PrByte (0b00111000); //Function set ; DL = 1(8 bits) , N = 1 (2 lines), F = 0 (5x8 dots) LCD_PrByte (0b00001100); // Display on/off control LCD_PrByte (0b00000110); // Entry mode set LCD_PrByte(LCD_COMMAND_CLEAR); LCD_PrByte(LCD_COMMAND_HOME); } // =================================================================================================== void LCD_PrString (const char* message){ // Write message to LCD (C string type) while (*message) // Look for end of string LCD_PrChar (*message++); // Show and bump }
Các bạn có thể mô phỏng bằng Proteus chạy rất ok. Lúc nào gửi tiếp mấy cái đã test.
Chúc các bạn thành công.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
Thư viện I2C Master.100 Khz
Tiếp theo là về module I2C, một chuẩn giao tiếp quan trọng khi giao tiếp với ngoại vi như EEPROM, RTS(DS1307),...
Do đó, mình xin cung cấp cho các bạn các hàm và thực thi của các hàm này trên HTPIC. Mình có tham khảo cả ở bọn htsoft nhưng nó viết sai một số hàm không chạy được, mình đã viết lại toàn bộ.
Đầu tiên là hàm I2C.h:
Code://I2C.h //Declare some functions void I2C_Init(void); // khởi tạo I2C ở chế độ Master, Baud = 100 Khz void I2C_waitForIdle(void); // Chờ khi nào đường bus ở chế độ Idle (rảnh rỗi) void I2C_Start(void); // Khởi động I2C - Master chiếm đường bus void I2C_repStart(void); // Chế độ Restart void I2C_stop(void); // Stop I2C - Master nhường đường bus cho thiết bị khác unsigned char I2C_write( unsigned char I2CWriteData ); // ghi một byte lên đường SDA unsigned char I2C_read( unsigned char ack ); // Đọc một byte với mã ACK (ACK = 0 nếu ack = 1, và ACK = 1 nếu ack = 0) -> dùng xác nhận từ master đối với slave. void I2C_NACK(void); // tạo bít Not Ack
Code:// I2C.c # include "pic.h" # include "I2C.h" //====================================================================================================== void I2C_Init(void){ /* // Configure for Master Mode SSPM3 = 1; SSPM2 = 0; SSPM1 = 0; SSPM0 = 0; ss // I2C Master Mode, clock = Fosc/(4*(SSPADD + 1)); WCOL = 0; //No conllision SSPEN = 1; // Enables the serial port and */ SSPCON = 0b00101000; // set IIC port to Master mode with BRG SSPSTAT = 0b00000000; // Standard speed mode - 100Hz SSPCON2 = 0; //TRIS_SCL = 0; //TRIS_SDA = 0; // configure SDA and SCL as Output SSPADD = 9; // BAUD = 100KHz SSPIF = 0; // clear SSPIF interrupt flag BCLIF = 0; // clear bus collision flag STAT_CKE = 0; // use I2C levels worked also with '0' STAT_SMP = 1; // disable slew rate control worked also with '0' } //============================================================================= void I2C_waitForIdle(void) { while (( SSPCON2 & 0x1F ) | STAT_RW) ; //CLRWDT(); // wait for idle and not writing } //============================================================================= void I2C_Start(void){ //SSPIF = 0; SEN = 1; //while(!SSPIF); while(SEN); } //============================================================================== void I2C_repStart(void) { I2C_waitForIdle(); RSEN = 1; } //============================================================================= void I2C_stop(void) { I2C_waitForIdle(); PEN = 1; } //============================================================================== unsigned char I2C_write( unsigned char I2CWriteData ){ I2C_waitForIdle(); SSPBUF = I2CWriteData; I2C_waitForIdle(); return (!ACKSTAT); // function returns '1' if transmission is acknowledged // 1: Success // 0: Fail to send } //============================================================================ unsigned char I2C_read( unsigned char ack ){ unsigned char I2C_ReadData; I2C_waitForIdle(); RCEN = 1; I2C_waitForIdle(); I2C_ReadData = SSPBUF; I2C_waitForIdle(); if ( ack ) ACKDT=0; else ACKDT = 1; ACKEN = 1; // send acknowledge sequence I2C_waitForIdle(); return( I2C_ReadData ); } /******************************************************************************************/ void I2C_NACK(void) { I2C_waitForIdle(); if (ACKSTAT){ PEN=1; //Stop I2C_waitForIdle(); //Wait until action is finished while(PEN); }; }
- Khởi tạo I2C bằng I2C_Start();
- Start bằng I2C_Start();
- Chọn slave giao tiếp bằng cách ghi địa chỉ và bit RW tương ứng với chế độ đọc hay ghi.
- Ghi dữ liệu lựa chọn byte nào cần ghi hay cần đọc trong bảng RAM của DS1307.
- Ghi dữ liệu hay là đọc dữ liệu.
Chú ý: khi ghi xong, muốn đọc thì phải làm lại tức là phải restart nhé.
Chúc các bạn thành công.Technical sale at WT Microelectronics S'pore
Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com
Comment
-
Nguyên văn bởi phucvinh_el Xem bài viếtcho em hoi
bit TMRO la bit gi` va anh cho TMRO=6 la co y nghia nhu the nao
em tim` trong dât shet ko thay noi den cai bit nay ma cung ko co thanh ghi nao nhu nay ca
Tác giả nạp trước cho bộ đếm giá trị là 6, Timer 0 sẽ đếm từ giá trị này đến 255 thì tràn. Chắc ý tác giả muốn nạp trước giá trị 6 (trừ 1 lệnh hiệu chỉnh) để đựoc 250 x prescaler chu kỳ cho một lần tràn.
Ý tưởng thì có lẽ là vậy, nhưng thực tế nó sẽ chạy không hoàn toàn chính xác như vậy.
Comment
-
Nguyên văn bởi ngohaibac Xem bài viếtTiếp theo là về module I2C, một chuẩn giao tiếp quan trọng khi giao tiếp với ngoại vi như EEPROM, RTS(DS1307),...
Do đó, mình xin cung cấp cho các bạn các hàm và thực thi của các hàm này trên HTPIC. Mình có tham khảo cả ở bọn htsoft nhưng nó viết sai một số hàm không chạy được, mình đã viết lại toàn bộ.
Đầu tiên là hàm I2C.h:
Code://I2C.h //Declare some functions void I2C_Init(void); // khởi tạo I2C ở chế độ Master, Baud = 100 Khz void I2C_waitForIdle(void); // Chờ khi nào đường bus ở chế độ Idle (rảnh rỗi) void I2C_Start(void); // Khởi động I2C - Master chiếm đường bus void I2C_repStart(void); // Chế độ Restart void I2C_stop(void); // Stop I2C - Master nhường đường bus cho thiết bị khác unsigned char I2C_write( unsigned char I2CWriteData ); // ghi một byte lên đường SDA unsigned char I2C_read( unsigned char ack ); // Đọc một byte với mã ACK (ACK = 0 nếu ack = 1, và ACK = 1 nếu ack = 0) -> dùng xác nhận từ master đối với slave. void I2C_NACK(void); // tạo bít Not Ack
Code:// I2C.c # include "pic.h" # include "I2C.h" //====================================================================================================== void I2C_Init(void){ /* // Configure for Master Mode SSPM3 = 1; SSPM2 = 0; SSPM1 = 0; SSPM0 = 0; ss // I2C Master Mode, clock = Fosc/(4*(SSPADD + 1)); WCOL = 0; //No conllision SSPEN = 1; // Enables the serial port and */ SSPCON = 0b00101000; // set IIC port to Master mode with BRG SSPSTAT = 0b00000000; // Standard speed mode - 100Hz SSPCON2 = 0; //TRIS_SCL = 0; //TRIS_SDA = 0; // configure SDA and SCL as Output SSPADD = 9; // BAUD = 100KHz SSPIF = 0; // clear SSPIF interrupt flag BCLIF = 0; // clear bus collision flag STAT_CKE = 0; // use I2C levels worked also with '0' STAT_SMP = 1; // disable slew rate control worked also with '0' } //============================================================================= void I2C_waitForIdle(void) { while (( SSPCON2 & 0x1F ) | STAT_RW) ; //CLRWDT(); // wait for idle and not writing } //============================================================================= void I2C_Start(void){ //SSPIF = 0; SEN = 1; //while(!SSPIF); while(SEN); } //============================================================================== void I2C_repStart(void) { I2C_waitForIdle(); RSEN = 1; } //============================================================================= void I2C_stop(void) { I2C_waitForIdle(); PEN = 1; } //============================================================================== unsigned char I2C_write( unsigned char I2CWriteData ){ I2C_waitForIdle(); SSPBUF = I2CWriteData; I2C_waitForIdle(); return (!ACKSTAT); // function returns '1' if transmission is acknowledged // 1: Success // 0: Fail to send } //============================================================================ unsigned char I2C_read( unsigned char ack ){ unsigned char I2C_ReadData; I2C_waitForIdle(); RCEN = 1; I2C_waitForIdle(); I2C_ReadData = SSPBUF; I2C_waitForIdle(); if ( ack ) ACKDT=0; else ACKDT = 1; ACKEN = 1; // send acknowledge sequence I2C_waitForIdle(); return( I2C_ReadData ); } /******************************************************************************************/ void I2C_NACK(void) { I2C_waitForIdle(); if (ACKSTAT){ PEN=1; //Stop I2C_waitForIdle(); //Wait until action is finished while(PEN); }; }
- Khởi tạo I2C bằng I2C_Start();
- Start bằng I2C_Start();
- Chọn slave giao tiếp bằng cách ghi địa chỉ và bit RW tương ứng với chế độ đọc hay ghi.
- Ghi dữ liệu lựa chọn byte nào cần ghi hay cần đọc trong bảng RAM của DS1307.
- Ghi dữ liệu hay là đọc dữ liệu.
Chú ý: khi ghi xong, muốn đọc thì phải làm lại tức là phải restart nhé.
Chúc các bạn thành công.
Comment
-
Anh Ngô Hài Bắc oi8 cho em hỏi một chút. Em lấy code sau dùng cho con PIC 16F877A trong mạch báo nhiệt độ nhưng khi em làm thử thì 2con led 7 đoạn nó không sáng gì cả.Em nghĩ chắc là code thiếu cái gì đó. Mong anh chỉ giáo cho em.Em có gửi kèm schematic của mach và code cua nó.Attached Files
Comment
-
cho em hỏi về lập trình C cho Pic
Chào các bạn,
ah, mình định dùng camera để đưa dữ liệu vào máy tính, và nhờ VDK xử lý dữ liệu và tương tác với người sử dụng, ví dụ tren giao diẹn windown, học sinh có thể chọn 1 giá trị khoảng cách giữa hai khe hẹp đến màn, thí trên giao diện sẽ xuất hiện giá trị khoảng vân tương ứng,
mình chọn lập trình C vì minh đọc trên mạng thấy nếu cần cho việc thiết kế giao diện nhiều hơn thì nên chọn cách lập trình C cho VDK, và PIC 18F4550 thì dễ dùng cho lập trình C vì thế mình chọn và đã mua xong hết các thiết bị cần thiết rồi.
Nhưng đến lúc bắt tay vào việc lập trình cho PIC thì mình k có tài liệu về lập trình C cho VDK, và với PIC 18F4550 thì mình cần đọc những lài liệu nào để có thể lạp trình C cho nó?
Bạn nào có kinh nghiệm thì giúp mình với.
Comment
-
Nguyên văn bởi camthach Xem bài viếtChào các bạn,
ah, mình định dùng camera để đưa dữ liệu vào máy tính, và nhờ VDK xử lý dữ liệu và tương tác với người sử dụng, ví dụ tren giao diẹn windown, học sinh có thể chọn 1 giá trị khoảng cách giữa hai khe hẹp đến màn, thí trên giao diện sẽ xuất hiện giá trị khoảng vân tương ứng,
mình chọn lập trình C vì minh đọc trên mạng thấy nếu cần cho việc thiết kế giao diện nhiều hơn thì nên chọn cách lập trình C cho VDK, và PIC 18F4550 thì dễ dùng cho lập trình C vì thế mình chọn và đã mua xong hết các thiết bị cần thiết rồi.
Nhưng đến lúc bắt tay vào việc lập trình cho PIC thì mình k có tài liệu về lập trình C cho VDK, và với PIC 18F4550 thì mình cần đọc những lài liệu nào để có thể lạp trình C cho nó?
Bạn nào có kinh nghiệm thì giúp mình với.
Còn nếu í a là học sinh chỉ vào bảng ( máy chiếu sẽ chiếu lên bảng) , camera nhận hình ảnh vị trí tay học sinh đang chỉ --> đưa về PC sử lí --> wa khủng với 1 ng chưa bit lập trình C cho PIC như thế nào.
A hình như đang hiểu sai về công dụng của PIC và camera trong trường hợp này . Cách đơn giản và hiệu quả nhất là :
- Mua 1 bộ thu phát IR hoặc RF
- Mạch thu gắn thêm con PLS2030 ( tên con này ko nhớ rõ , chỉ nhớ là tạo cổng COM ảo) . Còn nếu dùng PIC 4550 thì khỏi cần vì bản thân PIC này đã có module giao tiếp USB
- Viết chương trình nhận tín hiệu từ bộ Tx , đưa vào PIC sử lí , oy truyền tín hiệu điều khiển lên PC
- Tại PC , a viết chương trình nhận tín hiệu từ cổng USB ( do PIC gửi lên) bằng VB hoặc Delphi. Đây là công đoạn giao tiếp PC chứ ko có chi hết.
Giao tiếp PC thì a bit oy . Vd : trên mạch phát TX , nhấn nút 1 thì ra lệnh cho chuột click đúp vào my Computer.
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtko bit a dùng camera làm j trong trường hợp này ? vì rõ ràng học sinh nhấp chuột vào màn hình (giá trị khoảng vân sẽ xuất hiện ) thì mọi thao tác đều nằm trong sự kiểm soát PC --> PIC và camera ko dùng .
Còn nếu í a là học sinh chỉ vào bảng ( máy chiếu sẽ chiếu lên bảng) , camera nhận hình ảnh vị trí tay học sinh đang chỉ --> đưa về PC sử lí --> wa khủng với 1 ng chưa bit lập trình C cho PIC như thế nào.
A hình như đang hiểu sai về công dụng của PIC và camera trong trường hợp này . Cách đơn giản và hiệu quả nhất là :
- Mua 1 bộ thu phát IR hoặc RF
- Mạch thu gắn thêm con PLS2030 ( tên con này ko nhớ rõ , chỉ nhớ là tạo cổng COM ảo) . Còn nếu dùng PIC 4550 thì khỏi cần vì bản thân PIC này đã có module giao tiếp USB
- Viết chương trình nhận tín hiệu từ bộ Tx , đưa vào PIC sử lí , oy truyền tín hiệu điều khiển lên PC
- Tại PC , a viết chương trình nhận tín hiệu từ cổng USB ( do PIC gửi lên) bằng VB hoặc Delphi. Đây là công đoạn giao tiếp PC chứ ko có chi hết.
Giao tiếp PC thì a bit oy . Vd : trên mạch phát TX , nhấn nút 1 thì ra lệnh cho chuột click đúp vào my Computer.
Nhưng mình muốn nói rõ hơn là hiện tại mình có sẵn bộ thí nghiệm giao thoa với ánh sáng laze đỏ. và đã tạo ra một hệ thống vân giao thoa rồi (cho HS quan sát thực tế).
Và bạn biết là khi mình di chuyển vị trí nguồn sáng laze thì hệ vân giao đó sẽ thay đổi theo. (khoảng vân i sẽ tăng hoặc giảm phụ thuộc vào vị trí nguồn laze D).
Vấn đề của mình là muốn chứng minh điều này bằng thí nghiệm giao thoa đó ghép nối qua máy tính. Trên giao diện Windown, HS sẽ chọn 1 vị trí D (D =40cm), máy tính sẽ điều khiển vị trí của nguồn laze đến đúng vị trí D đã chọn đấy thông qua PIC, và camera sẽ nhận tín hiệu lúc này đưa về PIC xử lý và đưa kết quả khoảng vân i (i = 0.0005cm) lên giao diện Windown.
Vì mình là giáo viên cấp 3, thí nghiệm ở trường thì hơi lạc hậu.., mình muốn HS có cái tool để học hiện đại hơn mà chờ nhà nước cấp cho thì chắc....HS của mình đã ra trường rồi . Nên mình tự bỏ tiền túi và mày mò để làm thui. Hi vọng nhờ các anh giúp đỡ.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Bác đúng là hệ Pháp, nên toàn quên chữ "d".
Nếu em được như bác, đúng 0h mới được stand by với hũ rượu và vợ thì tuyệt.
Nhưng đời không như là mơ, em và lão Đinh Vặn ngấm đủ mà.
Lão Đinh Vặn...-
Channel: Điện tử gia dụng
hôm nay, 00:17 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101Vì bản chất của nó hoạt động theo dòng. Áp chỉ để mức giới hạn.
Cứ hiểu như bạn khôn hơn 10 người, nhưng khả năng thu nhận kiến thức chỉ bằng 1/10 người khác, thì nó sẽ tự điều chỉnh thôi.-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 23:41 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Ựa... có lý...
Dưng mà lão chỉ dùng 1 con opto là nguy hiểm lắm.
Có khi nó on lúc lão với ấy ấy về nhà lúc vắng vợ thì khổ. Nên phải thêm cái mạch logic nữa mới được....-
Channel: Điện tử gia dụng
Hôm qua, 23:20 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi lct1610Bác có cách nào khác ngoài quấnlại/rút bớt vòng dây BA (và mua mới ) k nhỉ ? Tại gỡ ra cũng khá lằng nhằng và kì công...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 19:30 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi mèomướpDạ với mức áp chênh lệch quá nhìu thì ngoài chỉnh hồi tiếp thì chú cần quấn lại thứ cấp biến áp nữa ạ. Tùy loại mà có thể sẽ khéo léo rút bớt vòng dây đỡ phải tách lõi ferit ạ...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:57 -
-
bởi lct1610E có adapter laptop cũ hiệu asus chạy tốt ,có đầu ra ổn định ở 19,4v dòng 3,42A ( công suất 60w). E định là hạ nó xuống 12v để cấp nguồn cho đầu camera. Và e đã thử bằng cách can thiệp vào phần hồi tiếp (sử dụng ic DAS001 hay TSM103W) thông...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:44 -
-
bởi nguyendinhvanỞ đây thì cũng chỉ có mấy cái máy tập gym là cùng, vào Nhà máy thì không đủ tuổi, mà bài thực hành thì không đủ cơm trưa.
Mà mấy cái máy gym thì cần giải pháp đồng bộ tốt hơn là biện pháp chắp vá....-
Channel: Đặt hàng
26-12-2024, 23:12 -
-
Trả lời cho Mạch tự động bật nguồnbởi nguyendinhvanMấy cái hệ thống Minh Thông đó là tôi tránh xa.
Vì một ngày mình bấm nút La- bô mấy lần, bấm vào những giờ nào nó cũng lưu vào datalog.
Dễ lộ bảo mật.
...-
Channel: Điện tử gia dụng
26-12-2024, 23:00 -
-
Trả lời cho Mạch tự động bật nguồnbởi vi van phamĐinh Vặn và Nhà Thùng ngồi uống bia thì cúp điện. Đinh Vặn vào trạng thái stanby, cầm ly bia mà không uống được. Đến khi có điện, cảm biến của Đinh Vặn phát huy chức năng, cầm chai bia tu 1 hơi.
Nhà Thùng vào trạng thái stanby,...-
Channel: Điện tử gia dụng
26-12-2024, 07:47 -
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Lão hôm nay uốn mấy lọ? Làm tôi đọc bài của lão toát cả mồ hôi, mãi khi nhìn sơ đồ mới hiểu....
Aiza... Lão lại đi về thời 0.4 rồi! Giờ cảm biến và trợ lý và thiết bị có đầy...
Tôi về đến Pháp Vân, gọi...-
Channel: Điện tử gia dụng
25-12-2024, 23:30 -
Comment