Una หน้าจอ LCD สามารถแก้ปัญหาได้ สำหรับโครงการที่คุณต้องการแสดงข้อมูลโดยไม่ต้องพึ่งพาคอมพิวเตอร์ที่เชื่อมต่อตลอดเวลา นั่นคือในโครงการ Arduino / Raspberry Pi คุณสามารถใช้พอร์ตอนุกรมเพื่อส่งข้อมูลที่แสดงบนหน้าจอเพื่อรับการอ่านเซ็นเซอร์แสดงกราฟบัญชีและอื่น ๆ แต่ถ้าโครงการของคุณทำงานอยู่ตลอดเวลาหรืออยู่ไกลจากจุดที่คุณสามารถมีคอมพิวเตอร์ได้หน้าจอ LCD คือทางรอดของคุณ
ตัวอย่างเช่นสมมติว่าคุณติดตั้งระบบให้น้ำอัตโนมัติและคุณต้องการตรวจสอบการอ่านค่าความชื้นและอุณหภูมิเมื่อคุณไปที่สวนผักหรือสวนของคุณ การต้องนำคอมพิวเตอร์ไปที่นั่นเพื่อเชื่อมต่อบอร์ด Arduino กับพีซีนั้นไม่ใช่วิธีแก้ปัญหาที่ใช้ได้จริง ในกรณีนี้คุณสามารถแก้ไขโค้ดของคุณตามที่กล่าวได้ ข้อมูลจะแสดงบนหน้าจอ LCD และยังเพิ่มคีย์หรือปุ่มบางปุ่มเพื่อให้สามารถแสดงข้อมูลที่แตกต่างกันได้
แผง LCD คืออะไร?
จอแสดงผลคริสตัลเหลวหรือ LCD (จอแสดงผลคริสตัลเหลว) เป็นจอแบนชนิดบางที่สามารถแสดงภาพได้ แต่ละแผงประกอบด้วยพิกเซลสีหรือขาวดำจำนวนหนึ่งที่วางอยู่ด้านหน้าแหล่งกำเนิดแสง การบริโภคของพวกเขาอยู่ในระดับต่ำซึ่งเป็นเหตุผลว่าทำไมพวกเขาจึงเหมาะอย่างยิ่งสำหรับโครงการอุปกรณ์อิเล็กทรอนิกส์กำลังต่ำ DIY ประเภทนี้
แต่ละพิกเซลบนหน้าจอ LCD ประกอบด้วยชั้นของโมเลกุลที่อยู่ระหว่างขั้วไฟฟ้าโปร่งใสสองขั้วและตัวกรองโพลาไรซ์สองตัว ระหว่าง ฟิลเตอร์โพลาไรซ์มีจอแสดงผลคริสตัลเหลวดังนั้นจึงเป็นชื่อของมันและป้องกันไม่ให้แสงที่ผ่านตัวกรองแรกถูกบล็อกโดยวินาที
นอกจากนี้หากคุณสังเกตเห็น เมื่อคุณแตะหนึ่งในหน้าจอเหล่านี้ ภาพเสียรูปทรงและมีคราบดำชนิดหนึ่งปรากฏขึ้นเมื่อกดนั่นเป็นเพราะคุณออกแรงกดคริสตัลเหลวและไม่แนะนำให้ทำเช่นนั้น ... คุณอาจได้สีของหน้าจอที่มีคุณภาพต่ำลงการกระจายแสงที่ไม่สม่ำเสมอ หรือแม้แต่พิกเซลที่ตายแล้ว (จุดดำหรือพื้นที่บนหน้าจอที่ไม่หายไป)
หน้าจอ LCD สำหรับ Arduino และ Raspberry Pi
หน้าจอ LCD เช่น โมดูลที่มีอยู่สำหรับอุปกรณ์อิเล็กทรอนิกส์หรือสำหรับ Arduinoโดยปกติจะมีหลายคอลัมน์เพื่อแสดงอักขระหรือสัญลักษณ์ที่เป็นตัวเลขและตัวอักษรและหนึ่งหรือสองแถวเพื่อแสดงข้อมูล สิ่งนี้ทำให้น่าสนใจกว่าการแสดงผลเจ็ดส่วนซึ่งจะต้องเชื่อมต่อหมุดหลายตัวเพื่อให้สามารถแสดงตัวเลขสัญลักษณ์หรือตัวอักษรเพียงตัวเดียว หากคุณต้องการแสดงเพิ่มเติมคุณควรวางจอแสดงผลหลายจอ
แต่ด้วยหน้าจอ LCD เดียวคุณสามารถแสดงข้อมูลได้มากขึ้น แต่คุณต้องรู้พินเอาต์ของโมดูลประเภทนี้ให้ดีเพื่อเชื่อมต่ออย่างถูกต้อง ฉันขอแนะนำให้คุณดูเสมอ เอกสารข้อมูลของผู้ผลิตและรุ่นเฉพาะ ที่คุณมีเนื่องจากอาจแตกต่างกันไป
เช่น คุณสามารถซื้อได้จาก Adafruit ใน Amazonซึ่งเป็นหนึ่งในคีย์บอร์ดที่ได้รับความนิยมมากที่สุดและมีความเป็นไปได้ในการแสดงอักขระได้สูงสุด 16 ตัวในแต่ละบรรทัดสองบรรทัด และยังมี 20 × 4 หรืออะไรที่สูงกว่านั้นและสีหลายนิ้วเพื่อแสดงภาพที่ซับซ้อนมากขึ้น.
สำหรับหน้าจอ LCD ของ Adafruit 16 × 2 คุณสามารถดูเอกสารข้อมูลนี้...
สำหรับ arduino อาจจะง่ายกว่าแบบที่ดีกว่า หน้าจอ LCD 16x2 ไม่มีแป้นพิมพ์. หากคุณดูที่บอร์ดนี้จะมีหมุด 16 ตัวที่ด้านหลัง หากคุณนำกระดานมาพลิกคว่ำและดูหมุดจากซ้ายไปขวาแสดงว่าคุณมีหมุด:
- Pin 16: GND สำหรับแบ็คไลท์
- Pin 15: Vcc สำหรับแบ็คไลท์
- พิน 7-14: 8 บิต (8 พินถัดไป) เพื่อส่งข้อมูลที่จะแสดงบนหน้าจอ
- Pin 6: อ่านและเขียนการซิงค์
- Pin 5. R / W (เขียนและอ่านข้อมูลและคำสั่ง)
- Pin 4: RS (ตัวเลือกระหว่างคำสั่งและข้อมูล)
- พิน 3: การควบคุมคอนทราสต์
- Pin 2: Vcc ของ 5v สำหรับกำลังไฟ
- Pin 1: GND (0v) สำหรับกำลังไฟ
โปรดจำไว้ว่าเมื่อคุณวางไว้ในตำแหน่งที่ถูกต้องหมุดจะกลับด้าน ...
บูรณาการกับ Arduino
ไปยัง เชื่อมต่อกับ arduino ไม่ซับซ้อนเกินไปคุณต้องพิจารณารวมตัวต้านทาน 220 โอห์มเพื่อควบคุมแรงดันไฟฟ้าขาเข้าสำหรับกำลังไฟหน้าจอและโพเทนชิออมิเตอร์เพื่อปรับความคมชัดของหน้าจอ จากนั้นเชื่อมต่อแต่ละพินเข้ากับบอร์ด Arduino อย่างเหมาะสมเท่านี้ก็เสร็จเรียบร้อย คุณสามารถดูภาพของ Fritzing ...
อย่างที่เห็น, โพเทนชิออมิเตอร์จะถูกป้อนเข้า หน้าจอ LCD และความคมชัดจะถูกปรับด้วย ดังนั้นจึงจะเชื่อมโยงกับทั้ง GND และ Vcc ของจอแสดงผลตลอดจนสายควบคุมแบ็คไลท์และการควบคุมคอนทราสต์ บางทีอาจจะซับซ้อนที่สุดก็เป็นเรื่องของการเชื่อมต่อพินที่เหลือเข้ากับอินพุต / เอาท์พุตที่คุณจะใช้ในโปรเจ็กต์ของคุณ
การเขียนโปรแกรมด้วย Arduino IDE
สำหรับการเขียนโปรแกรม คุณต้องคำนึงถึงลักษณะเฉพาะบางอย่าง โปรดทราบว่าคุณไม่เพียง แต่ต้องรู้วิธีการส่งข้อมูลเท่านั้น แต่ยังต้องย้ายข้อมูลวางไว้บนหน้าจอเป็นต้น และคุณควรใช้ไลบรารีที่เรียกว่า LiquidCrystal.hตราบเท่าที่หน้าจอ LCD ของคุณมีชิปเซ็ต Hitachi HD44780 ที่เข้ากันได้ คุณมีตัวอย่างโค้ดที่นี่:
#include <LiquidCrystal.h> // Definimos las constantes #define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso #define ROWS 2 // Aqui las filas x2 #define VELOCIDAD 200 // Velocidad a la que se movera el texto // Indicamos los pines de la interfaz donde hayas conectado el LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Para el texto que se muestra String texto_fila = "Ejemplo LCD"; void setup() { // Configura el monitor serie Serial.begin(9600); // Configurde filas y columnas lcd.begin(COLS, ROWS); } void loop() { // Tamaño del texto a mostrar int tam_texto=texto_fila.length(); // Indicamos que la entrada de texto se hace por la izquierda for(int i=tam_texto; i>0 ; i--) { String texto = texto_fila.substring(i-1); // Limpia la pantalla para poder mostrar informacion diferente lcd.clear(); //Situar el cursor en el lugar adecuado, en este caso al inicio lcd.setCursor(0, 0); // Escribimos el texto "Ejemplo LCD" lcd.print(texto); // Esperara la cantidad de milisegundos especificada, en este caso 200 delay(VELOCIDAD); } // Desplazar el texto a la izquierda en primera fila for(int i=1; i<=16;i++) { lcd.clear(); lcd.setCursor(i, 0); lcd.print(texto_fila); delay(VELOCIDAD); } // Desplazar el texto a izquierda en la segunda fila for(int i=16;i>=1;i--) { lcd.clear(); lcd.setCursor(i, 1); lcd.print(texto_fila); delay(VELOCIDAD); } for(int i=1; i<=tam_texto ; i++) { String texto = texto_fila.substring(i-1); lcd.clear(); lcd.setCursor(0, 1); lcd.print(texto); delay(VELOCIDAD); } }
ข้อมูลมากกว่านี้ - คู่มือการเขียนโปรแกรม Arduino (PDF ฟรี)