#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
// Display static text
display.println("Hello, world!");
display.display();
}
void loop() {
}
int count=0;
int temp;
void setup() {
pinMode(1, INPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
void loop() {
if(digitalRead(3) == HIGH){
if(count == 80){
count = 80;
}else if(count == 40){
count = 40;
upward();
}else{
count = 80;
upward();
}
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}else if(digitalRead(2)==HIGH){
if(count == 80){
count = 40;
downward();
}else if(count == 40){
count = 40;
}else{
count = 40;
upward();
}
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}else if(digitalRead(1) == HIGH){
if(count==80){
count = 80;
downward();
} else if(count == 40){
count = 40;
downward();
}else{
count = 0;
}
count = 0;
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
}
void upward()
{
for(int i = 0; i < count; i++)
{
delay(300);
temp = digitalRead(7);
digitalWrite(7, digitalRead(4));
digitalWrite(4, digitalRead(5));
digitalWrite(5, digitalRead(6));
digitalWrite(6, temp);
if (i==40);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
}
void downward()
{
for(int i = 0; i < count; i++)
{
delay(300);
temp = digitalRead(7);
digitalWrite(7, digitalRead(6));
digitalWrite(6, digitalRead(5));
digitalWrite(5, digitalRead(4));
digitalWrite(4, temp);
if (i==40);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
}