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 Hỏi về test hipot cao ápbởi nguyendinhvanCách nghĩ của bạn là theo duy tâm thôi. Còn trong công việc thì phải theo duy lý.
Bạn vào goggle và gõ từ : tiêu chuẩn an toàn cách điện.
Bạn sẽ thấy vô vàn các quy định, VN cũng có , quốc tế cũng có. Mỗi vùng , mỗi khu vực,...-
Channel: Điện tử dành cho người mới bắt đầu
02-11-2024, 20:04 -
-
bởi lamvu0677Chào mọi người, ai làm về điện, đặc biệt biến áp xung, mâý con nho nhỏ gắn vào mạch nguồn, cho e hỏi tí ą, e cũng làm trong ty về biển áp thì đo kiểm thành phẩm sẽ kiểm cao áp, tức là kiểm xem có phóng điện giữa các cuộn dây với...
-
Channel: Điện tử dành cho người mới bắt đầu
01-11-2024, 21:05 -
-
bởi AaaabbbbbEm chào các anh chị ,cô chú . Em đang có 1 đề tài: Mô phỏng điều khiển động cơ 1 chiều và bộ điều khiển điện áp tự động (AVR) sử dụng MATLAB/Simulink và Arduino . Anh chị có thế giải thích hoặc định hướng giúp em với được không ạ . Em xin cảm ơn !!...
-
Channel: Vi điều khiển AVR
30-10-2024, 16:38 -
-
bởi 2embeyeuem mới nhập môn, bác nào có sơ đồ của mạch này và cách cắm mạch trên panel cho em xin với, em cảm ơn ạ
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 15:52 -
-
bởi dqt21091997Hi mọi người,
Team mình hiện là đối tác phân phối cho 1 dịch vụ Proxy US chuẩn bị mở mang tên Proxy Compass. Mọi người có thể trải nghiệm ở đây: https://proxycompass.com/vi/free-trial/
Điểm mạnh của Proxy Compass là:
- 50 địa chỉ IP proxy
...-
Channel: Tổng quan về ngành viễn thông
30-10-2024, 14:46 -
-
Trả lời cho Thắc mắc về kiến thức điện xoay chiềubởi SteinsKMình nhớ là do điện AC không có chia cực cố định như DC, thêm vào đó thì ổ điện loại mà 2 lỗ thì cũng không có phân biệt chiều cắm, thành ra mình cắm chiều nào cũng được. Đây là em hiểu như vậy, có bác nào có ý kiến khác không ạ....
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 09:57 -
-
bởi tivungvechào mọi người, em là sinh viên mới tìm hiểu về điện em có thắc mắc là tại sao điện AC ở nhà dùng có phích cắm khi cắm vào ổ điện thì cắm chiều nào cũng được, mà em đọc trên mạng thấy điện AC có dây trung tính và dây pha mà nhỉ...
-
Channel: Điện tử dành cho người mới bắt đầu
27-10-2024, 14:25 -
Comment