Índice:
- Etapa 1: Requisitos de Hardware e Software
- Etapa 2: Ajustando UTFT Lib
- Etapa 3: inicializando o escudo TFT
- Etapa 4: Hello World básico
- Etapa 5: Fontes UTFT
- Etapa 6: formas, linhas e padrões UTFT
- Etapa 7: Bitmap UTFT
- Etapa 8: Interface do botão
- Etapa 9: Flappy Bird
- Etapa 10: Trabalho do Projeto
Vídeo: Noções básicas de interface do Arduino TFT: 10 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
As telas sensíveis ao toque TFT são a incrível interface gráfica que pode ser usada com microcontroladores como Atmel, PIC, STM, pois possui uma ampla gama de cores, boa capacidade gráfica e um bom mapeamento de pixels.
Hoje, faremos a interface do escudo TFT LCD de 2,4 polegadas com o Arduino.
Esse escudo é para o Arduino UNO, mas vou ensinar como usá-lo com o Arduino Mega por um motivo muito lógico, a "Memória de programa".
Usando este escudo TFT LCD colorido, podemos mostrar caracteres, strings, interface de botão, imagens de bitmap, etc. no LCD TFT colorido.
Etapa 1: Requisitos de Hardware e Software
Para fazer a interface do escudo com o Arduino mega, precisamos do seguinte.
HARDWARE:
• Arduino mega
• LCD TFT 2,4 / 2,8 / 3,2 polegadas
• Cabo USB
PROGRAMAS
• IDE Arduino
• Biblioteca UTFT / Biblioteca spfd5408
O escudo é originalmente feito para as placas Arduino UNO, que podem ser usadas com o Arduino mega.
Existem dois problemas principais ao usá-lo com o Arduino UNO: "Memória de armazenamento" e uso de pinos.
É difícil usar os pinos não usados que estão disponíveis no UNO, ao passo que é melhor com o Arduino MEGA, já que temos mais pinos de I / O restantes.
Na próxima etapa, mostrarei como editar a biblioteca UTFT para usar o escudo TFT
Etapa 2: Ajustando UTFT Lib
Esta biblioteca é a continuação das minhas bibliotecas ITDB02_Graph, ITDB02_Graph16 e RGB_GLCD para Arduino e chipKit. À medida que o número de módulos de exibição e controladores com suporte começou a aumentar, senti que era hora de fazer uma única biblioteca universal, pois será muito mais fácil de manter no futuro.
O Arduino MEGA tem 256kb de memória de programa. Além disso, existem 54 pinos.
A maioria deles é de uso gratuito, e o analógico apenas 5 foi extraído de 16.
Esta biblioteca suporta uma série de monitores gráficos de 8 bits, 16 bits e seriais e funcionará com placas Arduino, chipKit e lançadores de TI selecionados.
NOTA: Devido ao tamanho da biblioteca, não recomendo usá-la no ATmega328 (Arduino Uno) e no ATmega32U4 (Arduino Leonardo), pois eles possuem apenas 32 KB de memória flash. Isso funcionará, mas você estará severamente limitado na memória flash disponível para o seu aplicativo
Passos
- Baixe a biblioteca UTFT
- Descompacte a biblioteca
- Abra UTFT / hardware / avr no caso do Arduino ou dependendo do microcontrolador usado
- Abra HW_AVR_defines usando o Notepad
- Remova o comentário da linha 7 para habilitar a proteção UNO para MEGA
- Salve o arquivo e adicione esta biblioteca ao Arduino IDE
Agora terminamos esta etapa! Na próxima etapa, mostrarei como usar a biblioteca e definir os pinos para o Arduino Mega.
Etapa 3: inicializando o escudo TFT
Após editar a biblioteca, adicione-a ao diretório Arduino.
A seguir, vou mostrar como definir o módulo TFT certo que você tem
devemos encontrar seu nome de módulo na biblioteca.
- abra o arquivo da biblioteca
- vá para a documentação
Você pode ver esses arquivos na documentação
• UTFT:
Este arquivo mostra todas as funções e comandos incluídos nesta biblioteca.
• UTFT_Requirement
Este arquivo contém informações sobre os módulos e como está relacionado à biblioteca, como configurações de pinos
• UTFT_Supported_display_modules _ & _ controller
Este é o nosso alvo, este arquivo tem os nomes dos módulos e escudos que são suportados por esta biblioteca, você pode ver nele uma lista de nomes de módulos e nomes de módulos para o UTFT que você deve usar para definir seu módulo.
Passos para definir o TFT:
Abra UTFT_Supported_display_modules _ & _ arquivo do controlador da biblioteca
- Abra UTFT_Supported_display_modules _ & _ arquivo do controlador da biblioteca
- Encontre os modelos de UTFT para os módulos (blindagem) que você possui.
- Agora, para definir uma função UTFT no IDE do Arduino, usamos o comando:
Nome UTFT (módulo, Rs, Wr, Cs, Rst);
Abra o arquivo UTFT_Requirement da biblioteca
Pelo documento, sabemos que os pinos estão localizados nos pinos A5, A4, A3 e A2.
usamos o comando:
UTFT myGLCD (ITDB28, 19, 18, 17, 16); # observe que os pinos 19, 18, 17, 16 no Arduino Mega
UTFT myGLCD (ITDB28, A5, A4, A3, A2); # observe que os pinos A5, A4, A3, A2 no Arduino UNO
E feito! Agora você pode usar os exemplos de biblioteca no IDE do Arduino com as seguintes alterações.
Etapa 4: Hello World básico
#include // Declare quais fontes usaremos
extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Lembre-se de alterar o parâmetro do modelo para se adequar ao seu módulo de exibição! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // verde myGLCD.print ("OLÁ, MUNDO", 45, 100); while (verdadeiro) {}; }
Etapa 5: Fontes UTFT
#include // Declare quais fontes usaremos
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Defina os pinos corretos para seu escudo de desenvolvimento // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Escudo Arduino Uno / 2009 padrão:, A5, A4, A3, A2 // DisplayModule Arduino Uno escudo TFT:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Escudo Arduino Mega / Devido padrão:, 38, 39, 40, 41 // Escudo CTE TFT LCD / SD para Arduino Mega:, 38, 39, 40, 41 // // Lembre-se de alterar o parâmetro do modelo para se adequar ao seu módulo de exibição! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {myGLCD. InitLCD () myGLCD.clrScr (); } void loop () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \" # $% & '() * +, -. / ", CENTER, 0); myGLCD.print (" 0123456789:;? ", CENTER, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", CENTER, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrstuvwxyz {|} ~ ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", CENTER, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", CENTRO, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTER, 190); enquanto (1) {}; }
Etapa 6: formas, linhas e padrões UTFT
#include "UTFT.h" // Declare quais fontes usaremosextern uint8_t SmallFont ; // Defina os pinos para os corretos para seu escudo de desenvolvimento // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Escudo Arduino Uno / 2009 padrão:, A5, A4, A3, A2 // Escudo TFT do DisplayModule Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Arduino Mega padrão / Escudo devido:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para Arduino Mega:, 38, 39, 40, 41 // // Lembre-se de alterar o parâmetro do modelo para se adequar ao seu módulo de exibição! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); configuração de void () {randomSeed (analogRead (0)); // Configurar o LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }
void loop ()
{int buf [318]; int x, x2; int y, y2; int r; // Limpar a tela e desenhar o quadro myGLCD.clrScr (); myGLCD.setColor (255, 0, 0); myGLCD.fillRect (0, 0, 319, 13); myGLCD.setColor (64, 64, 64); myGLCD.fillRect (0, 226, 319, 239); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print ("* Biblioteca Universal Color TFT Display *", CENTER, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTER, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Desenhar retículos myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); para (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); for (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Desenhe as linhas sin-, cos- e tan-myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); para (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (sin (((i * 1,13) * 3,14) / 180) * 95)); } myGLCD.setColor (255, 0, 0); myGLCD.print ("Cos", 5, 27); para (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (cos (((i * 1,13) * 3,14) / 180) * 95)); } myGLCD.setColor (255, 255, 0); myGLCD.print ("Tan", 5, 39); para (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1,13) * 3,14) / 180))); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); // Desenhe uma onda senoidal móvel x = 1; para (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); else myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119 + (sin (((i * 1,1) * 3,14) / 180) * (90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns retângulos preenchidos para (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pausa; caso 2: myGLCD.setColor (255, 0, 0); pausa; caso 3: myGLCD.setColor (0, 255, 0); pausa; caso 4: myGLCD.setColor (0, 0, 255); pausa; caso 5: myGLCD.setColor (255, 255, 0); pausa; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns retângulos arredondados preenchidos para (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pausa; caso 2: myGLCD.setColor (255, 0, 0); pausa; caso 3: myGLCD.setColor (0, 255, 0); pausa; caso 4: myGLCD.setColor (0, 0, 255); pausa; caso 5: myGLCD.setColor (255, 255, 0); pausa; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns círculos preenchidos para (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); pausa; caso 2: myGLCD.setColor (255, 0, 0); pausa; caso 3: myGLCD.setColor (0, 255, 0); pausa; caso 4: myGLCD.setColor (0, 0, 255); pausa; caso 5: myGLCD.setColor (255, 255, 0); pausa; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe algumas linhas em um padrão myGLCD.setColor (255, 0, 0); para (int i = 15; i <224; i + = 5) {myGLCD.drawLine (1, i, (i * 1,44) -10, 224); } myGLCD.setColor (255, 0, 0); para (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1,44) -11, 15); } myGLCD.setColor (0, 255, 255); para (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1,44), 15); } myGLCD.setColor (0, 255, 255); para (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1,44), 224); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns círculos aleatórios para (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32 + aleatório (256); y = 45 + aleatório (146); r = aleatório (30); myGLCD.drawCircle (x, y, r); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns retângulos aleatórios para (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatório (316); y = 16 + aleatório (207); x2 = 2 + aleatório (316); y2 = 16 + aleatório (207); myGLCD.drawRect (x, y, x2, y2); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenhe alguns retângulos arredondados aleatórios para (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatório (316); y = 16 + aleatório (207); x2 = 2 + aleatório (316); y2 = 16 + aleatório (207); myGLCD.drawRoundRect (x, y, x2, y2); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); para (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatório (316); y = 16 + aleatório (209); x2 = 2 + aleatório (316); y2 = 16 + aleatório (209); myGLCD.drawLine (x, y, x2, y2); } atraso (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); para (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2 + aleatório (316), 16 + aleatório (209)); } atraso (2000); myGLCD.fillScr (0, 0, 255); myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect (80, 70, 239, 169); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print ("É isso!", CENTER, 93); myGLCD.print ("Reiniciando em a", CENTER, 119); myGLCD.print ("alguns segundos…", CENTER, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msegs)", CENTER, 210); myGLCD.printNumI (millis (), CENTER, 225); atraso (10000); }
Etapa 7: Bitmap UTFT
#incluir
#include // Declara quais fontes usaremos extern uint8_t SmallFont ; // Defina os pinos para os corretos para seu escudo de desenvolvimento // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Escudo Arduino Uno / 2009 padrão:, A5, A4, A3, A2 // Escudo TFT do DisplayModule Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Arduino Mega padrão / escudo devido:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield para Arduino Mega:, 38, 39, 40, 41 // // Lembre-se de alterar o parâmetro do modelo para se adequar ao seu módulo de exibição! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern unsigned int info [0x400]; ícone externo não assinado int [0x400]; extern unsigned int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** Uma grade de 10 por 7 de um ícone de 32x32 ***", CENTRO, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, info); atraso (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dois ícones diferentes na escala 1 a 4", CENTRO, 228); int x = 0; para (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, ícone, s); x + = (s * 32); } atraso (5000); }
Etapa 8: Interface do botão
#include #include // Inicializar display // ------------------ // Defina os pinos corretos para sua placa de desenvolvimento // ------- -------------------------------------------------- - // Escudo Arduino Uno / 2009 padrão:, 19, 18, 17, 16 // Escudo Mega / Devido Arduino padrão:, 38, 39, 40, 41 // Escudo CTE TFT LCD / SD para Arduino Devido:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield para Arduino Due:, 22, 23, 31, 33 // // Lembre-se de altere o parâmetro do modelo para se adequar ao seu módulo de exibição! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inicializar a tela de toque // ---------------------- // Definir os pinos corretos uns para a sua placa de desenvolvimento // ------------------------------------------- ---------------- // Escudo Arduino Uno / 2009 padrão: 15, 10, 14, 9, 8 // Escudo Mega / Devido Arduino padrão: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield para Arduino Prazo: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield para Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Declara quais fontes usaremos extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************* ** Funções personalizadas ** ********* ***************** / void drawButtons () {// Desenhe a linha superior de botões para (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x * 60), 10, 60+ (x * 60), 60); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x * 60), 10, 60+ (x * 60), 60); myGLCD.printNumI (x + 1, 27+ (x * 60), 27); } // Desenhe a linha central de botões para (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x * 60), 70, 60+ (x * 60), 120); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x * 60), 70, 60+ (x * 60), 120); if (x <4) myGLCD.printNumI (x + 6, 27+ (x * 60), 87); } myGLCD.print ("0", 267, 87); // Desenhe a linha inferior de botões myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Clear", 40, 147); myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (160, 130, 300, 180); myGLCD.print ("Enter", 190, 147); myGLCD.setBackColor (0, 0, 0); } void updateStr (int val) {if (stCurrentLen = 10) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 70) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 130) && (y = 10) && (x = 160) && (x0) {para (x = 0; x
Etapa 9: Flappy Bird
#include #include #include // ==== Criando objetos UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Os parâmetros devem ser ajustados ao seu modelo Display / Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Definindo fontes extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Variáveis para as coordenadas onde o display foi pressionado // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int MovingRate = 3; int fallRateInt = 0; float fallRate = 0; pontuação int = 0; int lastSpeedUpScore = 0; int higherScore; boolean screenPressed = false; boolean gameStarted = false; void setup () {// Iniciar exibição myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); maior pontuação = EEPROM.read (0); // Lê a pontuação mais alta do EEPROM InitteGame (); // Inicia o jogo} void loop () {xP = xP-movingRate; // xP - coordenada x dos pilares; intervalo: 319 - (-51) drawPilars (xP, yP); // Desenha os pilares // yB - coordenada y do pássaro que depende do valor da variável fallingRate yB + = fallRateInt; fallRate = fallRate + 0,4; // A cada entrada, a taxa de queda aumenta para que possamos o efeito da aceleração / gravidade fallRateInt = int (fallRate); // Verifica a colisão if (yB> = 180 || yB <= 0) {// superior e inferior gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// pilar superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// pilar inferior gameOver (); } // Desenha o pássaro drawBird (yB); // Após o pilar ter passado pela tela if (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, y + 81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y + 80, x-1, 204); } else if (x maior pontuação) {maior pontuação = pontuação; EEPROM.write (0, maior pontuação); } // Reinicia as variáveis para os valores da posição inicial xP = 319; yB = 50; fallRate = 0; pontuação = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = false; // Reinicia o jogo InitteGame (); }
Etapa 10: Trabalho do Projeto
Você pode encontrar o código-fonte em meu repositório Github.
Link:
Dê um joinha se realmente te ajudou e siga meu canal para projetos interessantes:)
Compartilhe este vídeo se quiser.
Fico feliz por você ter se inscrito:
Obrigado por ler!
Recomendado:
Drivers Tiny H-Bridge - Noções básicas: 6 etapas (com imagens)
Drivers Tiny H-Bridge | Noções básicas: Olá e bem-vindo de volta a outro Instructable! No anterior, mostrei como criei bobinas no KiCad usando um script python. Então criei e testei algumas variações de bobinas para ver qual funciona melhor. Meu objetivo é substituir o enorme
Botão de interface de interface - Noções básicas do Arduino: 3 etapas
Botão de interface - Arduino Básico: O botão de pressão é um componente que conecta dois pontos em um circuito quando você o pressiona. Quando o botão de pressão está aberto (não pressionado), não há conexão entre as duas pernas do botão de pressão, então o pino é conectado a 5 volts (através do pull-up resi
Como usar um piezo para produzir o tom: Noções básicas: 4 etapas (com imagens)
Como usar um Piezo para produzir o tom: Noções básicas: Olá a todos, Neste instrutível, usaremos uma campainha Piezo para produzir o tom. O que é uma campainha Piezo? Um Piezo é um dispositivo eletrônico que pode ser usado tanto para produzir quanto para detectar som. Aplicações: Você pode usar o mesmo circuito para tocar
Noções básicas de eletrônica: Diodo: 6 etapas (com imagens)
Noções básicas sobre eletrônica: Diodo: se você não gosta de ler, assista ao meu vídeo no Youtube, tornei mais simples lá. Também muito obrigado a www.JLCPCB.com por patrocinar este projeto, você pode solicitar PCB de 2 camadas (10 cm * 10 cm) por apenas $ 2 no site deles. Tempo de construção para 2 camadas de PCB i
Programa Pro-mini usando Uno (noções básicas do Arduino): 7 etapas (com imagens)
Programa Pro-mini usando Uno (Arduino Basics): Hai all, neste instrutível, gostaria de compartilhar minha experiência com meu Arduino pro-mini comprado recentemente e como consegui fazer upload do código para ele pela primeira vez, usando meu O antigo Arduino Uno.Arduino pro-mini tem os seguintes recursos: É i