A placa PR.FT9_5 é um shield que encaixa diretamente no Arduino UNO Rev3 e integra dois subsistemas independentes: um display LCD 20×4 via I2C para output visual e um controlador L293D para motores DC, servos e motores de passo.
20 colunas e 4 linhas de texto — espaço para dashboards ricos, menus e telemetria. Cada caractere tem matriz 5×8 px.
lcd.print() · lcd.setCursor()Fundo azul com retroiluminação branca — alta legibilidade. Brilho ajustável pelo potenciómetro onboard.
lcd.backlight() · noBacklight()Apenas 2 fios de dados (SDA/SCL) — liberta os pinos digitais. Resistências pull-up incluídas no módulo I2C.
A4(SDA) · A5(SCL)Até 8 caracteres 5×8 na CGRAM. Criar ícones de grau °, seta, termómetro, barra de progresso.
lcd.createChar() · CGRAMControlo independente de direção (FORWARD/BACKWARD/RELEASE) e velocidade (0–255 PWM). Base de chassis diferencial.
AF_DCMotor · setSpeed()Pinos D9 e D10 geram PWM 50 Hz. Compatível com SG90, MG90S e servos de torque médio.
D9 · D10 · Servo.write()AFMotor suporta unipolar e bipolar. Modos SINGLE, DOUBLE, INTERLEAVE, MICROSTEP. Posicionamento preciso.
AF_Stepper · step()Díodos de roda livre integrados no L293D protegem contra picos indutivos ao desligar os motores.
Proteção automáticaSubsistema LCD (I2C):
Subsistema Motor Driver (L293D):
Ferramentas → Gerir Bibliotecas no Arduino IDE 2 (ou ícone de livro na barra lateral).
Pesquisa LiquidCrystal I2C → instala LiquidCrystal_I2C de Frank de Brabander. Versão mais recente.
Pesquisa AFMotor → instala Adafruit Motor Shield library v1. A v1 é compatível com o chip L293D desta placa.
Em Ficheiro → Exemplos devem aparecer LiquidCrystal_I2C e AFMotor. Se sim, estás pronto.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <AFMotor.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // addr, cols, linhas
AF_DCMotor motor(1); // canal M1
void setup() {
lcd.init(); // inicializar controlador I2C
lcd.backlight(); // ligar retroiluminação
lcd.setCursor(0, 0); lcd.print("PR.FT9_5 LCD OK!");
lcd.setCursor(0, 1); lcd.print("Motor: FORWARD");
lcd.setCursor(0, 2); lcd.print("Speed: 150/255");
lcd.setCursor(0, 3); lcd.print("Biblioteca: AFMotor");
motor.setSpeed(150);
motor.run(FORWARD); delay(2000);
motor.run(RELEASE);
lcd.setCursor(0, 1); lcd.print("Motor: PARADO ");
}
void loop() {{}}