Hola. Siempre miraba de lejos al ATtiny85. (No terminaba de asimilar como usarlo). Años atrás me hice (para el desarrollo de mi trabajo) un GPS que te da las coordenadas del punto en el que me encuentro.
Primero lo hice con un Arduino UNO… Luego lo mejoré haciéndolo con un Arduino NANO v3 y en lugar de hacer mi versión sobre un Atmega328p (siempre buscando reducir su tamaño). Pensé que el ATtiny85 podía ser un buen momento para hacerlo y probarlo.
En este aporte quería ahorrarte dos meses de intensa búsqueda para lograr “los primeros y firmes pasos” sobre nuestro ATtiny85.
No es mi intensión escribirte acerca de su configuración o carga del Bootloader. Porque en la Web hay excelentes videos que lo explican.
Pero en resumidas cuentas; quería dejarte mis sensaciones:
- Pequeño, pocos pines (justo y necesario) de acuerdo a tus necesidades obviamente.
- Permite la Comunicación Serial (muy bien) y SPI,
- Sistema de Reset igual al de su hermano mayor (Atmega328p)
En mis pruebas solo me manejé con el reloj interno (sin problema alguno) 1 y 8 MHz
Realmente me satisfizo dejándome una excelente impresión personal.
Pero nada es tan perfecto. Su memoria de 512 bytes. Te demostrará (como lo fue en mi caso) que tanto sabemos de Programación Estructurada.
Que tanto recordamos o sabemos de trabajar con vectores, punteros, registros, campos y variables.
Aquí nuestro Kohinoor (como lo bautice, por el eslogan publicitario) “poderoso el chiquitin” nos dice que no es soplar y hacer botella. Como nos han mal acostumbrado las placas de Arduino o el mismo Atmega328p.
Pero para finalizar con este aporte. Solo quiero expresar mi más absoluta conformidad con este microcontrolador.
Hoy no puedo usar (como lo tenía pensado) a mi ATtiny85 con un Módulo Bluetooth + LCD + GPS; pero no tengo dudas; que la experiencia adquirida. Me ha servido muchísimo como no tengo dudas tampoco. Que más pronto que nunca lo emplearé en algún proyecto; que me permita ponerlo en el sitio que se merece.
Con este sketch veras que podrás vincularte con tu Modulo Bluetooth y enviar y recibir datos pudiendo mostrarlos en pantalla por medio de esta pequeña maravilla.
Con respecto a las librerías, solo puedo decirte: descarga del sitio Arduino.cc y no toques nada, no cambies nada como muestran y sugieren (por ahí) porque solo perderás tiempo (si es que no terminas tirándolo en un cajón).
Espero que este aporte algún día te sea de utilidad como lo ha sido en mi caso personal. Un gran y cordial saludo.
// 02/12/2022
// Empleo de LCD1602/04 y Modulo Bluetooth
// Con ATtiny85 (Bien básico para que lo modifiques a tu gusto)
//
#include <SoftwareSerial.h>
SoftwareSerial miBth(3,4);
#include <LiquidCrystal_attiny.h>
LiquidCrystal_I2C lcd(0x3f,16,2);
char caracter=' ';
String cadena="";
void setup(){
miBth.begin(9600);
lcd.init();
lcd.backlight();
pinMode(3,INPUT); // Tx Bth
pinMode(4,OUTPUT); // Rx Bth
lcd.clear(); lcd.home();
char renglon[17]="ATtiny85 c/Bth05";
for (int i=0; i<17; i++){
lcd.setCursor(i,0); lcd.print(renglon[i]);
}
}
void loop(){
bool haydata=false;
while (miBth.available()>0){
caracter=' ';
char caracter=miBth.read();
cadena+=String(caracter);
haydata=true;
}
if (haydata){
cadena.trim();
cadena.toLowerCase(); // Convierto la Letra a minuscula
if (cadena=="0"){cadena="0 CERO"; miBth.print("CERO~");}else
if (cadena=="1"){cadena="1 UNO"; miBth.print("UNO~"); }else
if (cadena=="a"){cadena="a AAA"; miBth.print("AAA~"); }else
if (cadena=="b"){cadena="b BBB"; miBth.print("BBB~"); }else{miBth.print(cadena);}
for (int i=0; i<16; i++){lcd.setCursor(i,1); lcd.print(" ");} // Limpio linea previamente
int Largo=cadena.length();
for (int i=0; i<Largo; i++){
String letra=cadena.substring(i,i+1); lcd.setCursor(i,1); lcd.print(letra);
}
cadena=""; }
}