CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Пинбол на Arduino


Скетч

/*

10/8/16
This is an adaption of the RobotGeek sketch "Contolling a Solenoid
with Arduino" and the RobotGeek LCD sketch "Hello World"

Controlling a Solenoid with Arduino
 
Products Used in this demo:
 - http://www.robotgeek.com/solenoids
 - http://www.robotgeek.com/robotgeek-geekduino-sensor-kit
 - http://www.robotgeek.com/robotGeek-pushbutton
 - http://www.robotgeek.com/robotgeek-relay

 */


#include <Servo.h>
#include <Wire.h>
#include <RobotGeekLCD.h>
RobotGeekLCD lcd;
Servo spinServo;
int spinServoPin = 3;


// constants won't change. They're used here to set pin numbers:
const int button1Pin = 1;     // the number of the pushbutton1 pin
const int button2Pin = 2;     // the number of the pushbutton2 pin
const int button3Pin = 4;
const int button4Pin = 5;
const int button5Pin = 6;

const int buttonResetPin = 7;

const int relay1Pin =  8;      // the number of the Relay pin
const int relay2Pin =  9; 
const int relay3Pin =  10; 
const int relay4Pin =  11; 
const int relay5Pin =  12; 

// variables will change:
int button1State = 0;         // variable for reading the pushbutton status
int button2State = 0;
int button3State = 0;
int button4State = 0;
int button5State = 0;
int buttonResetState = 0;

int gameScore = 0;

void setup() { 
  spinServo.attach(spinServoPin);
  spinServo.write(0);
  
  lcd.init();
  lcd.print("   Game Score:");
  
  
  // initialize the pushbutton pin as an input:
  pinMode(button1Pin, INPUT);     
  pinMode(button2Pin, INPUT);    
  pinMode(button3Pin, INPUT);
  pinMode(button4Pin, INPUT);
  pinMode(button5Pin, INPUT);
  pinMode(buttonResetPin, INPUT);
   
  // initialize the relay pin as an output:
  pinMode(relay1Pin, OUTPUT);    
  pinMode(relay2Pin, OUTPUT);
  pinMode(relay3Pin, OUTPUT);
  pinMode(relay4Pin, OUTPUT);
  pinMode(relay5Pin, OUTPUT);
}

void loop(){
  
  // read the state of the pushbutton values:
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);
  button3State = digitalRead(button3Pin);  
  button4State = digitalRead(button4Pin);  
  button5State = digitalRead(button5Pin);  
  buttonResetState = digitalRead(buttonResetPin);

  // check if the pushbutton1 is pressed.
  // if it is we turn on the relay/solenoid
  if (button1State == HIGH) {     
    // turn relay on:    
    digitalWrite(relay1Pin, HIGH);  
  } 
  // When we let go of the button, turn off the relay
  else if ((button1State == LOW) && (digitalRead(relay1Pin) == HIGH)) {
    // turn relay off
    digitalWrite(relay1Pin, LOW); 
  } 

  // check if the pushbutton2 is pressed.
  // if it is we turn on the relay/solenoid
  if (button2State == HIGH) {     
    // turn relay on:    
    digitalWrite(relay2Pin, HIGH);  
  } 
  // When we let go of the button, turn off the relay
  else if ((button2State == LOW) && (digitalRead(relay2Pin) == HIGH)) {
    // turn relay off
    digitalWrite(relay2Pin, LOW); 
    gameScore = gameScore + 10;
    lcd.setCursor(0,1);
    lcd.print("       ");
    lcd.print(gameScore);
  } 

  // check if the pushbutton3 is pressed.
  // if it is we turn on the relay/solenoid
  if (button3State == HIGH) {     
    // turn relay on:    
    digitalWrite(relay3Pin, HIGH);  
  } 
  // When we let go of the button, turn off the relay
  else if ((button3State == LOW) && (digitalRead(relay3Pin) == HIGH)) {
    // turn relay off
    digitalWrite(relay3Pin, LOW); 
    gameScore = gameScore + 10;
    lcd.setCursor(0,1);
    lcd.print("       ");
    lcd.print(gameScore);
  } 

  // check if the pushbutton4 is pressed.
  // if it is we turn on the relay/solenoid
  if (button4State == HIGH) {     
    // turn relay on:    
    digitalWrite(relay4Pin, HIGH);  
  } 
  // When we let go of the button, turn off the relay
  else if ((button4State == LOW) && (digitalRead(relay4Pin) == HIGH)) {
    // turn relay off
    digitalWrite(relay4Pin, LOW); 
    gameScore = gameScore + 50;
    lcd.setCursor(0,1);
    lcd.print("       ");
    lcd.print(gameScore);
  } 

  // check if the pushbutton5 is pressed.
  // if it is we turn on the relay/solenoid
  if (button5State == HIGH) {     
    // turn relay on:    
    digitalWrite(relay5Pin, HIGH);  
  } 
  // When we let go of the button, turn off the relay
  else if ((button5State == LOW) && (digitalRead(relay5Pin) == HIGH)) {
    // turn relay off
    digitalWrite(relay5Pin, LOW); 
    gameScore = gameScore + 100;
    lcd.setCursor(0,1);
    lcd.print("       ");
    lcd.print(gameScore);
  } 

  if (buttonResetState == HIGH) {
    lcd.setCursor(0,1);
    gameScore = 0;
    lcd.print("       0       ");
  }


}


Ссылки
Arduino Ping Pong Pinball

По теме
Ардуино что это и зачем?
Arduino, термины, начало работы
Разновидности плат Arduino, а также про клоны, оригиналы и совместимость
КМБ для начинающих ардуинщиков
  • 0
  • 24 октября 2016, 10:57
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.