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
-
bởi sonnenDịch vụ son nen nha xuong gia re thi công sơn Epoxy tại TPHCM thi cong son epoxy gia re
- Thi công sơn sàn ở nhà kho nhà xưởng các KCN chạy dài từ Nam ra Bắc son nen nha xuong
- Thi công công trình mới hay bảo dưỡng sửa chữa giải đáp các vấn đề nan giải của nhiều khách
-
Channel: Quảng cáo
Hôm qua, 16:28 -
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
17-02-2025, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
17-02-2025, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
17-02-2025, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
Comment