Gỡ lỗi màn hình LCD 16x2 trên Arduino


9

Tôi có màn hình LCD 16x2 tiêu chuẩn (tôi tin rằng nó tương thích với Hitachi HD44780 - xem tóm tắt và thông số kỹ thuật bên dưới), được nối với Arduino Uno bằng 4 chân dữ liệu, như được mô tả ở đây , mặc dù tôi đã thêm song song các điện trở 220 220m (tức là Điện trở 110ohm) trên chân 16 (Đèn nền) và thay thế Pot bằng điện trở tĩnh để tạo 4V trên Vo.

Nói tóm lại, RW được nối đất và RS, Enable và Data4-7 được kết nối với các chân Arduino, trong khi Dữ liệu 0-3 đang trôi nổi.

Tôi có những thứ khác (cảm biến, bóng bán dẫn có SSR bị quang và rơle chính, một số nút) được kết nối với các chân khác nhau trên Arduino. Mã tôi sử dụng ghi văn bản vào màn hình một số lần trong một giây và thông thường, màn hình hiển thị hoạt động hoàn hảo.

Tuy nhiên, khi rơle đóng (mất khoảng 10ma và được điều khiển bởi một bóng bán dẫn lần lượt được điều khiển từ một trong các chân Arduino), đôi khi LCD bị cắt xén. Nó vẫn bị cắt xén thường cho đến khi rơle tiếp theo đóng lại, nhưng đôi khi khi rơle mở ra, hoặc sau một vài chu kỳ mở / đóng để thiết lập lại. Việc cắt xén luôn bắt đầu và dừng cùng lúc với rơle mở hoặc đóng.

Bằng cách "bị cắt xén", ý tôi là mỗi lần tôi viết cho nó theo sau nó bị cắt xén, thay vì viết các ký tự tiếng Anh, tôi nhận được một chuỗi ký tự, mà tôi thường không thể xác định được trong biểu dữ liệu (mặc dù tôi có thể xác định được một số). Chuỗi ký tự bị cắt xén này có xu hướng di chuyển sang trái dọc theo màn hình khi tôi viết văn bản mới lên màn hình LCD.

Tôi tự tin rằng đó không phải là bản thân Arduino bị nhầm lẫn, vì tôi viết cùng một văn bản cho màn hình nối tiếp cùng một lúc và nó không bị cắt xén.

Kể từ đó, tôi đã thử nghiệm nối dây chân RW với đầu ra Arduino và Data0-3 nối đất, nhưng điều này không có ích. Tôi đã cấp nguồn cho toàn bộ thiết bị bằng pin 9V hoặc bằng USB và không có ích gì. Tôi đã thay pin ... không thay đổi.

Điều duy nhất có vẻ hoạt động là không có tải cắm vào rơle, nhưng điều đó đánh bại mục đích :-)

Tôi không có bộ phân tích tín hiệu hoặc bất cứ thứ gì tinh vi hơn đồng hồ vạn năng, máy tính xách tay và arduino ... Có ai có bất kỳ gợi ý nào để giúp tôi gỡ lỗi này không?

Bảng tóm tắt LCD: http://oomlout.com/LCDD/LCDD-SUMM-BC1602A.pdf

Thông số kỹ thuật LCD: http://oomlout.com/LCDD/LCDD-DATA-BC1602A.pdf

Ví dụ về văn bản bị cắt xén: văn bản bị cắt xén


1
Hãy thử thêm một tụ điện ít nhất 1 uF vào đường ray điện của bạn, đó là một đầu của tụ điện với Vcc và đầu kia là GND. Cẩn thận với hướng của tụ điện nếu nó là chất điện phân :)
abdullah kahraman

1
Điều này thực sự kỳ quái. Bạn không lái trực tiếp rơle lớn đó, hộp rơle bạn đã mua thực sự có một SSR nhỏ xíu đang chuyển đổi nguồn sang rơle lớn và rơle lớn bị hết dòng AC. Như vậy, thực sự không có cách nào để back-emf được tạo ra bởi rơle hoạt động để đi vào mạch của bạn.
Sói Connor

Điều này có mùi giống như một vấn đề nối đất / tách rời. Bạn có nhiều điện dung trên đường ray sức mạnh của bạn trên bảng điều khiển?
Sói Connor

Ngoài ra, làm thế nào gần hộp chuyển tiếp với mạch bánh mì? Bạn có thể đặt một vài feet dây giữa hộp rơle và phần còn lại của mạch không? Điều đó sẽ loại bỏ khả năng của bất kỳ khớp nối từ tính.
Sói Connor

Cảm ơn các câu trả lời. Bạn đã đúng rằng rơle được tách rời với SSR và các thành phần khác. Tôi đã thử một diode, và sau đó tôi đã thử một tụ điện điện 220uF giữa 5V & GND trên đường ray điện gần LCD. Cả hai điều này dường như không có tác dụng. Tôi đã không (chưa) thử cả hai cùng nhau.
Richard Russell

Câu trả lời:


5

Bạn có một diode trên rơle của bạn? Nếu không các gai cảm ứng khi đóng / mở có thể sẽ gây ra vấn đề.

Khi bạn dừng dòng điện chạy qua rơle, nó sẽ cố gắng duy trì dòng điện, nếu không có tuyến phóng điện, nó sẽ tạo ra một điện áp lớn (về cơ bản nó sẽ tiếp tục tăng cho đến khi tìm thấy tuyến đường).
Cụ thể công thức là V = L (dI / dT). Điều này có nghĩa là cuộn cảm chống lại sự thay đổi dòng điện thông qua nó bằng cách phát triển một điện áp trên nó tỷ lệ thuận với tốc độ thay đổi của dòng điện.

Hãy thử đặt một diode trên rơle, định hướng để chống lại dòng điện bình thường.

EDIT - kiểm tra trang sản phẩm có vẻ như đó là một rơle "đã sẵn sàng" trong một hộp có thêm các thành phần ngoại vi, vì vậy nó không chắc là ở trên. Mặc dù vậy, tôi sẽ cố gắng đặt diode trên nguồn cho rơle.
Cũng đảm bảo rằng nguồn cung của bạn được lọc tốt như được đề cập trong các ý kiến. Đặt một vài tụ điện ít nhất 1uF bên cạnh IC và LCD, và một nắp lớn> 100uF ở đâu đó (tất cả từ nguồn đến mặt đất)


Nhìn vào bảng dữ liệu cho "Rơle". Đầu vào của rơle thực sự đang lái một SSR nhỏ, giúp chuyển đổi năng lượng thực tế sang chính rơle. Vì đầu vào của rơle điều là đầu vào SSR, tôi không thấy một diode thực sự làm gì cả.
Sói Connor

Tôi đã có một cái nhìn (tôi không thể tìm thấy nó trước đây) và tôi đồng ý, đó chỉ là một loại đề nghị "không thể làm tổn thương" mà không có thêm thông tin. Hy vọng rằng chúng tôi sẽ sớm nhận được bản cập nhật về cách thức phân tách được thêm vào.
Oli Glaser

Cảm ơn vì sự trả lời. Bạn đã đúng rằng rơle được tách rời với SSR và các thành phần khác. Tôi đã thử điốt và sau đó tôi đã thử một tụ điện điện 220uF giữa 5V & GND trên đường ray điện gần LCD. Tôi đã không (chưa) thử cả hai cùng nhau.
Richard Russell

Tôi cũng đã cố ý di chuyển mạch điện xoay chiều cách mạch 5V một bước chân, chỉ để lại dây tín hiệu rơle 5V kết nối chúng, nhưng điều này không giúp ích gì. Trong thử nghiệm của mình, tôi phát hiện ra rằng một tải nhỏ trên rơle (đèn halogen 85W) dường như không ảnh hưởng nhiều đến màn hình, nhưng nếu tôi có tải lớn (ấm 2000W), nó có nhiều khả năng gây ra lỗi. Tôi đã thấy vấn đề này với đèn trước đó, mặc dù không thường xuyên.
Richard Russell

Một nắp gốm 1uF hoặc hơn sẽ tốt hơn cho các quá độ, thêm một nắp song song với 220uF. Hãy thử thêm một hoặc hai> 100uF nắp khác, trên + 5V và GND gần dây chuyển tiếp. Bạn có thể cho chúng tôi thấy một hình ảnh tốt hơn về thiết lập của bạn?
Oli Glaser

1

Tôi gặp vấn đề tương tự với màn hình LCD 16x4 khi Arduino cũng đang điều khiển bảng chuyển tiếp cách ly quang SainSmart . Tất cả mọi thứ hoạt động tốt với các liên lạc tiếp sức không kết nối. Nhưng khi rơle chuyển đổi tải cảm ứng (rơle công suất 24 VAC), màn hình bị cắt xén. Không có số lượng cách ly điện và tụ lọc giúp.

Điều giải quyết vấn đề là một snubber (tụ điện và điện trở nối tiếp) trên các tiếp điểm rơle SainSmart. Tôi đã sử dụng bộ lọc Cornell Dubilier EMI / RFI đóng gói sẵn để gọn gàng, nhưng một tụ điện 0,1 ufd đa dạng trong vườn với điện trở 47 ohm có lẽ cũng hoạt động tốt.


Tôi có thể xem sơ đồ mạch về cách bạn nối các tụ điện và điện trở với rơle. Cảm ơn
Jam Ville

0

Tôi đã đập đầu mình tại sao màn hình LCD của tôi bị "cắt xén" và hóa ra tôi đã không kết nối Arduino GND của mình với bảng điều khiển (nếu điều này có ích với ai đó). Trân trọng


Điều này không thêm nhiều vào các bình luận hiện có.
David

-1

sử dụng cáp được che chắn trên đầu ra và nối đất. Nó giải quyết vấn đề cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.