Arduino texte animation LCD (9 / 9 étapes)

Étape 9: Code pour 44780 / RT0802B-1 ver 2.0-citerne

/ / Ce code est pour un panneau de 14 broches LCD 44780 avec 2 broches plus pour anode/cathode rétro-éclairage

#include < LiquidCrystal.h >

Innovente lcd (7, 8, 9, 10, 11, 12) ;
FR, DB4, DB5, DB6, RS, DB7

Conseil d’administration
1 = masse
2 = Vcc
3 = pot 10k - 20k pour le contraste
4 = RS
5 = RW
6 = FR
11 = D4
12 = D5
13 = D6
14 = D7
Rechercher sur internet sur 44780 pour diverses pages qui décrivent le câblage dans les moindres détails

RW doit être câblé faible d’écrire, sinon il reste en mode « lecture »

sprite0 Byte [8] ;
sprite1 Byte [8] ;
sprite2 octet [8] ;
sprite3 octet [8] ;

void setup() {}
mis en place nombre de l’écran LCD de colonnes et de lignes :
LCD.Begin (8, 2) ;
lcd.setCursor(0,0) ;
LCD.Print("tankdemo") ;
lcd.setCursor(0,1) ;
LCD.Print("
memset(sprite0,7,8) ;
memset(Sprite1,7,8) ;
memset(Sprite2,7,8) ;
memset(sprite3,7,8) ;
lcd.setCursor(0,1) ;
Serial.Begin(9600) ;
}

Besoin de huit quantités de 32 bits que je peux utiliser pour les forets mouvants autour.
L’image originale de réservoir est dans ces valeurs.

tankImg long [] = {}
((long) B010000 << 10) | ((long) B000000 << 5) | B000000 / / antenne pointe
, ((long) B010111 << 10) | ((long) B011110 << 5) | B000000 / / haut de la tourelle
, ((long) B001111 << 10) | ((long) B011111 << 5) | B011110 / / tourelle mid avec Canon
, ((long) B000111 << 10) | ((long) B011110 << 5) | B000000 / / tourelle base
, ((long) B001111 << 10) | ((long) B011111 << 5) | B010000 / / bande de roulement haut
, ((long) B010000 << 10) | ((long) B000000 << 5) | B001000
, ((long) B010000 << 10) | ((long) B000000 << 5) | B001000
, ((long) B001111 << 10) | ((long) B011111 << 5) | B010000 / / bas, 24 pixels totales dans la bande de roulement de roulement
};

tankx est la position au niveau du bit sur l’écran.
tankcharx est la position de character-wise, ainsi tankx / 5.
Il peut être négatif.
Tankx zéro, le réservoir est sur la gauche de l’écran
Si tankImg octets sont divisées en quatre caractères personnalisés
le quatrième d'entre eux étant des bits vierges
À tankx un, les bits de réservoir déplacement un peu vers la droite
et si je suis intelligent, les marches sont calculées afin qu’ils « rotation »
Et ainsi de suite
Parce qu’il y a cinq bits horizontalement par char personnalisé
et les marches de réservoir allez tous les deux, je peux répéter l’original
réservoir de marches à partir de même les postes de char
int tankx = -15 ;
int tankcharx ;
int tankchary = 1 ;
int treadx = 0 ;

#define BITS_PER_CHAR 6

void loop() {}
tankcharx = tankx / BITS_PER_CHAR ;
Serial.Print ("tankx =") ;
Serial.Print(tankx) ;
Serial.Print ("tankcharx =") ;
Serial.println(tankcharx) ;

Interprétation initiale, aucune rotation de marches
Si ((tankx % BITS_PER_CHAR) == 0) {}
Passage intégral est en marche, besoin de dessiner un espace vide où la citerne a été modifié
Si (tankcharx > = 1) {}
lcd.setCursor (tankcharx-1, tankchary) ;
LCD.Write(' ') ;
}
Si (tankcharx > = 0 & & tankcharx < = 7) {}
lcd.setCursor (tankcharx, tankchary) ;
LCD.Write((Byte)0) ;
}
Si (tankcharx + 1 > = 0 & & tankcharx + 1 < = 7) {}
lcd.setCursor (tankcharx + 1, tankchary) ;
LCD.Write((Byte)1) ;
}
Si (tankcharx + 2 > = 0 & & tankcharx + 2 < = 7) {}
lcd.setCursor (tankcharx + 2, tankchary) ;
LCD.Write((Byte)2) ;
}
Si (tankcharx + 3 > = 0 & & tankcharx + 3 < = 7) {}
lcd.setCursor (tankcharx + 3, tankchary) ;
LCD.Write((Byte)3) ;
}
}
Calculer les bits des signes individuels personnalisés
int shiftbits = (tankx % BITS_PER_CHAR) ;
Serial.Print ("shiftbits =") ;
Serial.println(shiftbits) ;
Si (shiftbits < 0) {shiftbits += BITS_PER_CHAR;}
pour (int y = 0; y < 8; y ++)
{
lval long = tankImg [y] ;
Switch (treadx) {}
case 0 :
commutateur (y) {}
cas 4 :
lval ^ = 0x2cb0 ; rupture ;
cas 7 :
lval ^ = 0x2490 ; rupture ;
}
rupture ;
cas 1 :
commutateur (y) {}
cas 4 :
lval ^ = 0x1240 ; rupture ;
lval ^ = 0x36d0 ; rupture ;
cas no 5 :
lval ^ = 0x0008 ; rupture ;
cas 6 :
lval ^ = 0 x 4000 ; rupture ;
cas 7 :
lval ^ = 0x0920 ; rupture ;
}
rupture ;
cas 2 :
commutateur (y) {}
cas 4 :
lval ^ = 0x0920 ; rupture ;
lval ^ = 0x1b60 ; rupture ;
cas no 5 :
lval ^ = 0 x 4000 ; rupture ;
cas 6 :
lval ^ = 0x0008 ; rupture ;
cas 7 :
lval ^ = 0x1240 ; rupture ;
}
rupture ;
}

lshifted long = lval << (BITS_PER_CHAR-shiftbits) ;
sprite0 [y] = (byte) ((lshifted >> (3 * BITS_PER_CHAR)) & B011111) ;
Sprite1 [y] = (byte) ((lshifted >> (2 * BITS_PER_CHAR)) & B011111) ;
Sprite2 [y] = (byte) ((lshifted >> (1 * BITS_PER_CHAR)) & B011111) ;
sprite3 [y] = (byte) ((lshifted >> (0 * BITS_PER_CHAR)) & B011111) ;
}
lcd.createChar (0, sprite0) ;
lcd.createChar (1, sprite1) ;
lcd.createChar (2, sprite2) ;
lcd.createChar (3, sprite3) ;
++ tankx ;
Si (tankx > = 50) {tankx = -15;}
++ treadx ;
Si (treadx == 3) {treadx = 0;}
Delay(100) ;
}

Articles Liés

Raspberry Pi + Serial Arduino avec écran LCD

Raspberry Pi + Serial Arduino avec écran LCD

IntroIl s'agit de mon LCD d'info Raspberry Pi, j'ai voulu essayer d'obtenir l'Arduino et Raspberry Pi parler les uns aux autres par le biais de USB serial et j'ai fait ce petit projet.Le Raspberry Pi utilise un script python pour obtenir les données
Arduino Uno DHT11 LCD Station météo DIY

Arduino Uno DHT11 LCD Station météo DIY

c'est DIY sur comment faire de votre Station météo à l'aide de Arduino Uno, capteur de température et d'humidité DHT11, DFRobot LCD 2 x 16 écran avec clavier. Habituellement, vous pouvez acheter Arduino, DHT11 et LCD séparément et depuis chaque appar
Créer un texte animé dans blender 2.7

Créer un texte animé dans blender 2.7

J'ai toujours aimé travailler avec des ordinateurs et des animations.Après avoir découvert Blender, j'ai été accro à découvrir ce que j'ai pucréer. Mélangeur vraiment peut vous aiderApportez vos rêves en réalité. Néanmoins dans ce tutoriel, je vais v
Domotique avec arduino, boutons, écran LCD, téléphone intelligent EEPROM et

Domotique avec arduino, boutons, écran LCD, téléphone intelligent EEPROM et

Maintenant nous pouvons contrôler la coque à la maison avec le téléphone intelligentÉtape 1: Matériel nécessaire pour la domotique, vous pouvez ajouter des choses différentes, je choisis de commutation ou de relaisDans ce projet, vous contrôlerez swi
Arduino alimenté GLCD (LCD graphique) - je l’ai fait à TechShop

Arduino alimenté GLCD (LCD graphique) - je l’ai fait à TechShop

affichages sont toujours agréable. Jusqu'à maintenant j'ai juste été montrant comment utiliser affichages à 7 segments pour afficher des nombres en utilisant très peu de ressources. Mais que se passe-t-il si vous souhaitez afficher du texte ? Ou des
Arduino Bluetooth afficheur lcd

Arduino Bluetooth afficheur lcd

SalutAujourd'hui, j'ai fait un LCD télécommande simple mais utile.Que cela signifie ? Vous pouvez connecter votre téléphone au module Bluetooth de votre Arduino, entrez un message texte et il apparaîtra sur l'écran LCD de l'Arduino !Étape 1: Les chos
Votre Image sur un Arduino ! -TFT LCD écran Guide

Votre Image sur un Arduino ! -TFT LCD écran Guide

avez-vous déjà entendu des écrans TFT LCD ?  Ils sont d'excellents moyens pour afficher les informations de votre Arduino, ou afficher des photos.  L'équipe Arduino vient de sortir un écran TFT LCD officiel avec leur nouveau Robot à la Maker Faire 20
Arduino text'in

Arduino text'in

text'in de l'Arduino.Principales caractéristiques :24 relais contrôlés par 4 i/o lignes !Texte de téléphone portable en utilisant votre Arduino.Ce projet hacks un téléphone cellulaire pour le texte à l'aide de relais normalement ouverts. Après avoir
Banc d’alimentation PSU de vieux ATX avec Arduino et moniteur LCD

Banc d’alimentation PSU de vieux ATX avec Arduino et moniteur LCD

Bonjour à tous et Bienvenue sur mon premier Instructable.J'ai toujours voulu un banc PSU pour faciliter l'accès à une source d'alimentation et quelque chose que je peux compter sur quand on travaille sur divers projets. J'ai voulu un bloc d'alimentat
Ohmmètre Arduino avec écran LCD

Ohmmètre Arduino avec écran LCD

Cette Instructable va vous montrer comment faire un ohmmètre numérique à l'aide de Arduino.This ohmmètre est très précis... et totalement DIY.Étape 1: Rassembler tout le matériel.1) Arduino UNO (ou n'importe quel autre Arduino)2) maquette3) 16 x 2 éc
Arduino texte, au Morse code

Arduino texte, au Morse code

Salut!Il s'agit de mon premier instractableJ'ai écrit un petit programme dans l'Arduino pour convertir le texte en code Morse et l'afficher à l'aide de ledAvertisseur sonore peut être ajouté assez facilement
5 x 5 matricielle sur Arduino (texte obtient de pc) des instructions complètes et script

5 x 5 matricielle sur Arduino (texte obtient de pc) des instructions complètes et script

Avec cela, il suffit de taper le texte que vous voulez sur votre ordinateur et votre matrice 5 x 5 affiche le message.Utilisé :~ 25 leds~ Arduino uno~ 5 x résistance de 100 ohms~ et un peu de skriptingIl m'a fallu un certain temps pour comprendre tou
Moteur de l’Arduino PWM et LCD

Moteur de l’Arduino PWM et LCD

Salut, Mon nom est Ernestas, j'ai 14 ans. J'aime faire les choses !Aujourd'hui, j'ai fait un contoller moteur Arduino PWM avec un moteur et l'écran lcd.Il est facile à faire et pas compliqué !Permet de se lancer, doit nous ?Étape 1: Câblage, pièces e
Arduino DIY LCD défilement shield texte

Arduino DIY LCD défilement shield texte

Ce projet est une mise à niveau sur mon « shield Arduino DIY LCD » allez voir comment le faire sur ma chaîne !Dans ce projet, je vais utiliser un Arduino Uno pour faire défiler du texte sur un écran LCD de 16 × 2 caractères qui est contrôlé avec une