当前位置:首页 > 科学研究 > 电子编程 > 正文内容

Arduino Project 022 - LED Dot Matrix Display - Pong Game

RonWang2年前 (2024-10-15)电子编程956

This project was hard going and a lot to take in. So, for Project 22 you are going to create a simple game with simple code using the dot matrix display and a potentiometer. This time you are going to use one of the many available libraries for controlling LED dot matrix displays to see how much easier it can make your life when coding.

Project 22 – LED Dot Matrix Display – Pong game

/* Coding Ron Wang
   Oct.15th 2024
   Autaba support for coding hardware
   Project 22 LED Dot Matrix – Pong Game 
 */
 
#include "LedControl.h"

LedControl myMatrix = LedControl(11, 12, 8, 1); // create an instance of a Matrix
/*
DIN connects to pin 11
CLK connects to pin 12
CS  connects to pin 8
*/
 
int column = 1, row = random(8)+1; // decide where the ball will start
int directionX = 1, directionY = 1; // make sure it heads from left to right first
int paddle1 = 5, paddle1Val; // Pot pin and value
int speed = 300;
int counter = 0, mult = 10;

void setup()
{
 myMatrix.shutdown(0, false); // enable display
 myMatrix.setIntensity(0, 8); // Set the brightness to medium
 myMatrix.clearDisplay(0); // clear the display
 randomSeed(analogRead(0));
}

void loop()
{
 paddle1Val = analogRead(paddle1);
 paddle1Val = map(paddle1Val, 200, 1024, 1,6);
 column += directionX;
 row += directionY;
 if (column == 6 && directionX == 1 && (paddle1Val == row || paddle1Val+1 == row || paddle1Val+2 == row)) {directionX = -1;}
 if (column == 0 && directionX == -1 ) {directionX = 1;}
 if (row == 7 && directionY == 1 ) {directionY = -1;}
 if (row == 0 && directionY == -1 ) {directionY = 1;}
 if (column == 7) { oops();}
 myMatrix.clearDisplay(0); // clear the screen for next animation frame
 myMatrix.setLed(0, column, row, HIGH);
 myMatrix.setLed(0, 7, paddle1Val, HIGH);
 myMatrix.setLed(0, 7, paddle1Val+1, HIGH);
 myMatrix.setLed(0, 7, paddle1Val+2, HIGH);
 if (!(counter % mult)) {speed -= 5; mult * mult;}
 delay(speed);
 counter++;
}

void oops() {
 for (int x=0; x<3; x++) {
 myMatrix.clearDisplay(0);
 delay(250);
 for (int y=0; y<8; y++) {
 myMatrix.setRow(0, y, 255);
 }
 delay(250);
 }
 counter=0; // reset all the values
 speed=300;
 column=1;
 row = random(8)+1; // choose a new starting location
}

Arduino Pong Game MAX7219 Circuit

Arduino Pong Game MAX7219 Schematic

版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!

本文链接:http://www.autabarc.com/?id=272

标签: Arduino

相关文章

Arduino Project 032 - BMP280 Pressure Sensor LCD Display

Arduino Project 032 - BMP280 Pressure Sensor LCD Display

For this project we will use Arduino Uno and BMP280 along with LCD 16x2 display module to display te...

Arduino Project 029 - Control Stepper Motor ULN2004A

Arduino Project 029 - Control Stepper Motor ULN2004A

Stepper motors, due to their unique design, can be controlled to a high degree of accuracy without a...

Arduino Project 045 - RFID Servo and LED Control System

Arduino Project 045 - RFID Servo and LED Control System

Arduino Programming Basic -- RFID Servo and LED Control System Project 45 RFID Servo...

Arduino Project 009 - LED Fire Effect

Arduino Project 009 - LED Fire Effect

Project 9 will use LEDs and a flickering random light effect, via PWM again, to mimic the effect of...

Arduino Project 050 - IR Remote Control Light

Arduino Project 050 - IR Remote Control Light

Project 50 IR Remote Control Light/* Project 50 IR Remote Control Ligh...

Arduino Project 005 - LED Chase Lights

Arduino Project 005 - LED Chase Lights

You’re going to use a string of LEDs (10 in total) to make an LED chase effect, similar to that used...