Đây là mạch áp dụng tia hồng ngoại để nhận biết vật cản với phát tín hiệu để cho vi tinh chỉnh PIC16F877A thực hiện quá trình đếm số lượng. Mỗi lúc có một đồ gia dụng cẩn trải qua thì mạch hồng ngoại sẽ tạo ra một bộc lộ mức 1 đưa về vi điều khiển.

Bạn đang xem: Mạch đếm sản phẩm dùng led hồng ngoại


*

Mạch có thiết kế đơn giản, hầu hết người hoàn toàn có thể tham khảo với tự tay mình tạo ra sự một cái hệt như thế.Sơ đồ khối của mạch:
*

*

Khối cảm biến là khối nhận ra vật cản(sản phẩm) và phát tín hiệu tinh chỉnh và điều khiển về khối vi điều khiển, ở chỗ này ta áp dụng led thu-phát hồng ngoại để làm quá trình này.Hồng ngoại được phát do một con LED phân phát hồng ngoại và được thu vào bé LED thu, LED thu khi có hồng ngoại phản vào thì nhì đầu của LED xem như bị tắt, đúng đắn ở mạch khối cảm ứng khi LED thu mặt trời bị chặn ánh sáng thì chân B của transistor C1815 coi như được kích vì chưng đó bọn họ sẽ bao gồm tính hiệu vào LM358. LM358 là opamp được mắc theo mạch so sánh để tạo tín hiệu mức 0V hoặc 5V.
*

Khối tinh chỉnh và điều khiển có nhiệm vụ phân biệt tín hiệu tự mạch cảm ứng và hiển thị con số trên LED 7 đoạn.
*
Khối hiển thị bao gồm 3 LED 7 đoạn hòa hợp lại để hiển thị số đếm được. LED 7 đoạn dạng Anode chung. Sử dụng transistor A1015 để quét led 7 đoạn.
*

Sau đấy là code dùng làm nạp mang đến Pic 16F877A vận động đúng theo yêu thương cầu:Source code được viết bằng ngôn ngữ C bên trên trình biên dịch CCS.#include #fuses HS, NOWDT, NOPROTECT, NOLVP, NOBROWNOUT#use delay(clock=4000000)#use fast_io(e)#use fast_io(b)#use fast_io(d)#byte porte=0x09#byte portb=0x06#byte portd=0x08#bit tram=porte.0#bit chuc=porte.1#bit dv=porte.2#bit dk=portb.0int x,y,z;void hien(x,y,z);void khong_lam_viec();void main() set_tris_d(0b00000000);set_tris_b(0b00000001);set_tris_e(0b000); x=0; y=0; z=0; while(1)if(dk==0) loop: if(dk==1) z=z+1; if(z==10) z=0; y=y+1; if(y==10) y=0; x=x+1; if(x==9 và y==9 & z==9) khong_lam_viec();elsehien(x,y,z); goto loop; hien(x,y,z); void hien(x,y,z)tram=0;chuc=1;dv=1;switch(x)case 0: portd=0x
C0; break;case 1: portd=0x
F9; break;case 2: portd=0x
A4; break;case 3: portd=0x
B0; break;case 4: portd=0x99; break;case 5: portd=0x92; break;case 6: portd=0x82; break;case 7: portd=0x
F8; break;case 8: portd=0x80; break;case 9: portd=0x90; break;default: break;delay_ms(5);tram=1;chuc=0;dv=1;switch(y)case 0: portd=0x
C0; break;case 1: portd=0x
F9; break;case 2: portd=0x
A4; break;case 3: portd=0x
B0; break;case 4: portd=0x99; break;case 5: portd=0x92; break;case 6: portd=0x82; break;case 7: portd=0x
F8; break;case 8: portd=0x80; break;case 9: portd=0x90; break;default: break;delay_ms(5);tram=1;chuc=1;dv=0;switch(z)case 0: portd=0x
C0; break;case 1: portd=0x
F9; break;case 2: portd=0x
A4; break;case 3: portd=0x
B0; break;case 4: portd=0x99; break;case 5: portd=0x92; break;case 6: portd=0x82; break;case 7: portd=0x
F8; break;case 8: portd=0x80; break;case 9: portd=0x90; break;default: break;delay_ms(5);void khong_lam_viec() while(1) hien(x,y,z);

Giới Thiệu Mạch đếm thành phầm dùng cảm ứng hồng ngoại

*
Ví dụ về khối hệ thống bộ đếm.

Mạch đếm thành phầm dùng cảm biến hồng ngoại : Trong nội dung bài viết này, mình sẽ thiết kế Mạch đếm thành phầm dùng cảm ứng hồng ngoại . Chi máu hơn, mình sẽ sử dụng cảm ứng IR để phát hiện đồ gia dụng thể để làm bộ đếm.

Các Ứng dụng thường xuyên được sử dụng :

Đếm những người đi qua 1 lối đi hoặc lối vào duy nhất định. Ví dụ, trong những tòa nhà dịch vụ thương mại có các cổng kiểm soát điều hành sự ra vào hoặc hiện diện của người dùng thường được áp dụng để về tối ưu hóa việc tiêu thụ năng lượng;đếm đồ vật hoặc sản phẩm & hàng hóa trong nghành nghề dịch vụ công nghiệp;Vân vân.

Mạch đếm sản phẩm dùng cảm biến hồng nước ngoài đếm thành phầm dùng cảm ứng hồng ngoại hoàn toàn có thể được chế tác ra không chỉ với technology IR ngoại giả với các khối hệ thống hình ảnh nhiệt sử dụng một loạt các cảm biến phát hiện tại nguồn nhiệt độ hoặc thực hiện thị giác sản phẩm thường yêu cầu các thuật toán cách xử lý hình ảnh phức tạp.

Giới thiệu ứng dụng: cỗ đếm với technology IR

Khoảng cách từ đối tượng là rất đặc trưng và trong một số trường hợp, cảm ứng IR không tương thích cho những ứng dụng này. Nếu khoảng cách từ vật dụng thể to hơn 20-30cm, cảm ứng siêu âm hoàn toàn có thể là lựa chọn giỏi hơn.

mình đề nghị biết lúc nào cảm trở nên IR thay đổi trạng thái của nó từ cáng đáng THẤP cùng đếm số lần biến hóa này xảy ra: trên đây được call là phát hiện biến hóa trạng thái . Để biết thêm thông tin về nguyên tắc hoạt động của cảm biến hồng nước ngoài .

Mạch đếm sản phẩm dùng cảm ứng hồng ngoại nhì chiều

Các bộ đếm thời thượng sử dụng phần cứng phức hợp cho quy trình đếm. Project của chính bản thân mình là một bộ đếm đối tượng đơn giản và dễ dàng dựa trên Arduino với hai cảm biến IR. Chi huyết hơn, nó là bộ đếm trường đoản cú 0 mang lại 9, vào đó cảm ứng đầu tiên được áp dụng để đếm hầu như vật đến, cảm biến thứ hai là những người dân đi ra. Sự khác hoàn toàn (IN – OUT) được hiện trên LED 7 đoạn.

Xem thêm: Nên trồng nha đam mỹ hay thái, cách chăm sóc nha đam mỹ và nha đam thái

Mô tả phần cứng: LED 7 đoạn
*
LED 7 đoạn và chân gặm của nó.

Tập trung vào LED 7 đoạn SMA42056, đó là một linh phụ kiện điện tử được thiết kế theo phong cách để hiển thị số với thường được thực hiện trong đồng hồ đeo tay kỹ thuật số, đồng hồ điện tử và những loại LED số khác.

SMA42056 là LED 7 đoạn cathode bình thường với một đoạn bổ sung cuối cùng được hotline là vệt thập phân hoặc đơn giản dễ dàng là vệt chấm, được biểu hiện bằng chữ p. (Xem Hình 2), được thực hiện để hiển thị những số chưa phải số nguyên. Mỗi đoạn chỉ là 1 trong những đèn LED dễ dàng và đơn giản và thường xuyên được biểu hiện bằng các chữ dòng từ A cho G. LED 7 đoạn ko nhúng một điện trở nối tiếp cho mỗi đèn LED và điều khiển và tinh chỉnh chúng với năng lượng điện áp một chiều không đổi có thể làm hỏng vĩnh viễn những điểm nối: tránh điều này mình sẽ thực hiện một năng lượng điện trở thông suốt 220Ω cho từng đèn LED.

Giải say đắm về Demo cỗ đếm nhị chiều

*
Thiết lập bản trình diễn bộ đếm đối tượng.

Mạch đã đếm các đối tượng không trong suốt đang trải qua hai cổng IR: cổng thứ nhất tạo ra số tăng trên bộ đếm tổng, cổng lắp thêm hai tạo nên số giảm. Vì mạch khá đơn giản và dễ dàng và áp dụng led một chữ số, ứng dụng của chính bản thân mình sẽ bình chọn xem tất cả hai điều vẫn xảy ra:

Số đếm ko được màn biểu diễn bằng số âm;Số đếm không được màn biểu diễn bằng số lớn hơn 9;

BOM (Bill of Materials) của mạch là:

Bo mạch Arduino UNO ;2 x cảm biến IR fc-51 ;1 x LED 7-đoạn SMA42056 ;8 x R = 220Ω .Mạch nguyên lý
*
Sơ thiết bị được thực hiện trong bạn dạng trình diễn bộ đếm đối tượng

Để điều khiển và tinh chỉnh LED 7 đoạn, mình cần phải có 7 PIN cổng đầu ra kỹ thuật số như trong Hình 4. Ta cũng cần đọc tin tức từ hai cảm ứng IR . Điều này yêu cầu áp dụng 9 chân nghệ thuật số.

Trong ngôi trường hợp, ta đã áp dụng chân từ bỏ D2 cho D10 của Arduino. Để làm ví dụ hơn, mình đã xác minh số PIN để gán tên riêng mang đến chúng. Chú ý rằng, những tham số không thay đổi tại thời hạn chạy và vị đó, được xác định tại thời điểm biên dịch, mình đã sử dụng các chỉ thị tiền xử lý.

Sử dụng lệnh “define”, mình không chỉ có giảm chiếm dụng bộ lưu trữ mà còn về tối ưu hóa việc tiến hành chương trình.

mình được xác định các chân tiên tiến nhất (từ D2 mang đến D8) nhưng sẽ áp dụng để điều khiển và tinh chỉnh led là DISP_PIN_x (x từ 0 đến 6). Hai chân đầu ra của cảm biến IR (D9 với D10) vẫn được khẳng định là IR1 cùng IR2.


/*===========================================================================*//* PIN-map. *//*===========================================================================*/#define DISP_PIN_0 2 /* digital pin đầu vào for segment A */#define DISP_PIN_1 3 /* digital pin input for segment B */#define DISP_PIN_2 4 /* digital pin đầu vào for segment C */#define DISP_PIN_3 5 /* digital pin input for segment D */#define DISP_PIN_4 6 /* digital pin input for segment E */#define DISP_PIN_5 7 /* digital pin input đầu vào for segment F */#define DISP_PIN_6 8 /* digital pin đầu vào for segment G */#define IR1 9 /* digital pin đầu vào for ir sensor */#define IR2 10 /* digital pin input for ir sensor */


Có một số giá trị không biến đổi được khai báo vào code của mình, dù sao để dễ dàng sử dụng, mình ưu tiên lưu lại trữ nó vào một mảng bidimensional được hotline là display
SEG là một Lookup table: nói phương pháp khác, nó là 1 tập hợp các mã PIN để trước cần thiết để hiển thị một chữ số nhất quyết trên màn hình hiển thị hiển thị.

Trong khi các hàng biểu thị chữ số, những cột thể hiện từng đoạn (LED) của màn hình. Ví dụ, nhằm hiển thị số 0, toàn bộ các đoạn ko kể G đề xuất được đặt là CAO (xem Hình 2). Thành phần đầu tiên của mảng lưu giữ trữ cấu hình theo yêu ước của mỗi DISP_PIN để hiển thị 0. Vì vậy, mình có thể sử dụng mảng display
SEG <0> vào một vòng lặp để đặt từng DISP_PIN theo quý giá đặt trước của mình và đem số 0 của mình.

/*===========================================================================*//* Lookup table. *//*===========================================================================*/const byte display
SEG = /* A B C D E F G */ HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW , /* 0 */ LOW, HIGH, HIGH, LOW, LOW, LOW, LOW , /* 1 */ HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH , /* 2 */ HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH , /* 3 */ LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH , /* 4 */ HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH , /* 5 */ HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH , /* 6 */ HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW , /* 7 */ HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH , /* 8 */ HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH , /* 9 */;mình cần các biến bổ sung cập nhật là tâm lý của cảm ứng IR được đặt tên là IRx_out (với x 1 hoặc 2), một đổi thay để tàng trữ giá trị đếm với một vươn lên là chung được sử dụng trong số vòng lặp.