Lập trình giao tiếp cảm biến nhiệt độ DS18B20 với PIC16F877A hiển thị LED 7 đoạn

 Chào các bạn! hôm nay mình sẽ chia sẻ chương trình mẫu giao tiếp giữa cảm biến nhiệt độ DS18B20 với PIC16F877A hiển thị giá trị nhiệt độ ở ...

HỌC LẬP TRÌNH PIC16F877A TRÊN PIC C

HỌC LẬP TRÌNH PIC16F887 TRÊN MPLAB XC8

HỌC LẬP TRÌNH PIC18F4431 TRÊN MPLAB XC8

BÀI ĐĂNG MỚI

GIAO TIẾP MÁY TÍNH - VB6 - PIC16F877A

6:17:00 AM Add Comment
Chào các bạn hôm nay mình sẽ hướng dẫn các bạn lập trình PIC 16F877A giao tiếp máy tính sử dụng phần mềm visual basic 6 để truyền về nhần dữ liệu. Dưới đây là hình giao diện của visual basic 6 và protues.
giao tiếp máy tính pic16f877a
Để mô phỏng bài này các bạn cần có phần mềm protues và visual basic 6 các bạn có thể tình ở mục download của blog hoặc tải ở link dưới đây bao gồm các phần mềm cần thiết và toàn bộ project của bài này :
- Link download phần mềm protues : Phần mềm protues 8.1 full crack
- Link download phần mềm visual basic 6 : Visual Basic 6
- Link download project : Click here

TÀI LIỆU LẬP TRÌNH PLC S7 300 S7 400 CÓ MÔ PHỎNG CHI TIẾT

9:24:00 PM Add Comment
tài liệu lập trình plc
Trong bộ tài liệu này có cả tiếng Việt và tiếng Anh các bạn download về xem nha !
Link download : Click here

PROTEUS 8.6 SP2 FULL CRACK

7:12:00 AM Add Comment
Xin chào các bạn bản 8.6 này ra lâu rồi nhưng mãi mới có bản full nên hôm nay mới review cho ae được. Với phiên bản này thì hãng đã phát triển thêm một số tính năng rất hay. Chúng ta cùng đi tìm hiểu nào.
1. Proteus VSM for ARM® Cortex™-M3

Trong thư viện của bản 8.6 có tích hợp thêm cho chúng ta một số chíp của dòng ARM cụ thể là STM32F103. Cái này rất cần đối với bác nào đang tìm hiểu về ARM. Chứ như trước đây mình làm đồ án lúc đó Proteus chưa có nên phải mua mạch thật L
proteus 8.6 full crack
2. Curved Routing
Đây là một tính năng đi dây mới của Proteus rất hay nếu bạn nào dùng Altium chắc cũng sẽ biết. Nó cho phép chúng ta đi dây ở dạng các đường cong rất linh loạt. Và nó cũng nhiều option để chúng ta có thể setup:
proteus 8.6 full crack



3.     Layer Stackup & Smart Vias
Với tính năng này theo mình hiểu thì là trong khi ta đi dây mạch in, những cái nào thuộc cùng 1 layer thì nó sẽ được hiện hết lên và ta chỉ đi dây được ở layer đó còn layer khác thì bị ẩn đi.  Giúp ta k bị chồng chéo dây khi layout mạch.

Nguồn : tudonghoak10utehy.blogspot.com
- Link download : Click here

BÀI 5 : ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ BẰNG PWM

12:40:00 AM Add Comment
1. Sơ đồ mạch.
điều khiển động cơ arduino
Hình 1.
2. Code chương trình.
int potPin = 0;
int transistorPin = 9;
int potValue = 0;
void setup() {
pinMode(transistorPin, OUTPUT);}
void loop() {
potValue = analogRead(potPin) / 4;
analogWrite(transistorPin, potValue);
}
3. Giải thích chương trình.
Như trong sơ đồ mạch ta thấy biến trở được nối với chân A0, transistor được nối với
chân số 9 thông qua điện trở 1k. Như vậy ta khai báo 2 biến chứa vị trí chân cho biến trở và transistor.
int potPin = 0;
int transistorPin = 9;
Biến integer potValue chứa giá trị đọc được từ chân A0.
int potValue = 0
Một câu hỏi đặt ra ở đây là nếu chúng ta không kết nối transistor điều khiển động cơ
vào chân số 9 mà thay vào đó là chân số 1 hoặc 2 để điều khiển tốc độ động cơ thì có được không ?.
Câu trả lời là Không. Vậy tại sao Không ?
Tôi sẽ trả lời câu hỏi này sau. Nhưng trước hết tôi nói về PWM. PWM (pulse width
modulation) là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuổi xung dẫn đến sự thay đổi điện áp ra. Để tạo ra được PWM trên Arduino thì chúng ta sử dụng lệnh analogWrite(Pin, Value);
Trong đó:
Pin: là vị trí chân, đối với Arduino Uno thì chỉ có các chân 3, 5, 6, 9, 10 & 11 mới
có chức năng tạo PWM. Vậy chúng ta có thể trả lời được câu hỏi bên trên, các chân digital còn lại của có thể đọc hoặc xuất 2 giá trị là 0 và 1 mà thôi. Value: Giá trị nằm trong khoảng 0 đến 255. Để hiểu rõ hơn về PWM tôi sẽ minh hoạ qua ví dụ sau.
Nếu tôi sử dụng lệnh analogWrite(transistorPin, 127); thì dạng xung ở chân 9 (
transistorPin = 9) sẽ như hình dưới và giá trị trung bình ngõ ra sẽ là 2,5V (50% ).
PWM 50%
Hình 2. PWM 50%
Nếu Value = 64 (hay 25%) thì dạng xung như sau:
Hình 3. PWM 25%
Value = 229 (hay 90%) thì dạng xung sẽ là :
Hình 3. PWM 90%
Từ ví dụ trên ta thấy sự thay đổi độ rộng của chuổi xung dẫn đến sự thay đổi điện áp
ra. Ta cũng thấy rằng điện áp trên motor cũng thay đổi tuyến tính theo sự thay đổi điện áp ngõ ra trên chân 9. Tức là nếu điện áp trung bình trên chân 9 là 2,5 volt (50% ) thì điện áp trên hai đầu motor là 6 volt ( nguồn motor là 12 volt ). Quay lại chương trình ta cần quan tâm tới một câu lệnh đó là:
potValue = analogRead(potPin) / 4;
Chúng ta cần phải chia giá trị đọc được cho 4 vì giá trị analog sẽ nằm trong khoảng
0 (0 volt ) đến 1023 (5 volt ), nhưng giá trị cần xuất ra ngoài chân 9 lại nằm trong khoảng 0 đến 255 đó chính là lý do tại sao có chia 4 ở đây. Và câu lệnh cuối cùng là tạo PWM trên chân 9 để điều khiển tốc đố động cơ.
analogWrite(transistorPin, potValue);
Nếu như đã điều kiển được tốc độ động cơ bằng PWM rồi thì việc điều khiển độ sáng
của Led hay đèn đối với các bạn bay giờ là chuyện quá đơn giản. Các bạn chỉ cần nối chân số 9 với một Led có điện trở hạn dòng là 220 ohm và code chương trình hoàn toàn giống như điều khiển động cơ. Lưu ý là khi mô phỏng các bạn sẽ không thấy được led thay đổi độ sáng mà chỉ thấy nhấp nháy nguyên nhân là do phần mềm proteus không đáp ứng kịp sự thay đổi của các xung PWM. Nhưng khi làm thực tế các bạn sẽ thấy được sự thay đổi độ sáng của Led rõ rệt.