top of page
์ž‘์„ฑ์ž ์‚ฌ์ง„Soojin Woo

Term project Intermediate Demo


Term project Demo video


Below is open source that will be used in my Term project.


#include <LCD5110_Graph.h>

LCD5110 myGLCD(A0,A1,A2,A3,A4);

extern uint8_t SmallFont[];

const int ServoA = 11;

const int ServoB = 10;

const int ServoC = 9;

const int ServoD = 6;

const int clockwise = 1700;

const int counterclockwise = 1300;

const int ButtonA = 8;

const int ButtonB = 7;

const int ButtonC = 5;

const int ButtonD = 4;

const int LEDready = 13;

const int coinInsert = 12;

long previousMillis = 0;

long intervalIdle = 500;

int LEDreadyState = LOW;

int y1= 0; int y2= 10; //position shifters for LCD txt

void setup() {

myGLCD.InitLCD();

myGLCD.setFont(SmallFont);

myGLCD.setContrast(70);

pinMode(ButtonA, INPUT_PULLUP);

pinMode(ButtonB, INPUT_PULLUP);

pinMode(ButtonC, INPUT_PULLUP);

pinMode(ButtonD, INPUT_PULLUP);

pinMode(LEDready, OUTPUT);

pinMode(coinInsert, INPUT_PULLUP);

myGLCD.invert(true);

myGLCD.print("VenDuino", CENTER, 1);

myGLCD.print("by Ryan", CENTER, 10);

myGLCD.print("(c) 2017", CENTER, 30);

myGLCD.drawRoundRect(13, 0, 70, 8);

myGLCD.drawRect(0, 20, 83, 47);

myGLCD.update(); delay(1000);

myGLCD.clrScr();

myGLCD.update(); }

void loop()

{ //--Blink Ready LED---------------------------------------------------

unsigned long currentMillis = millis();

if(currentMillis - previousMillis >= intervalIdle) { // save the last time you blinked the LED previousMillis = currentMillis;

if (LEDreadyState == LOW){ // if the LED is off turn it on and vice-versa:

LEDreadyState = HIGH;

myGLCD.clrScr();

myGLCD.print("Please insert", CENTER, y1);

myGLCD.print(" $0.25. ", CENTER, y2);

myGLCD.invert(false);

myGLCD.update(); }

else

LEDreadyState = LOW;

digitalWrite(LEDready, LEDreadyState);// set the LED with the ledState of the variable:

y1=y1 +5; y2=y2+5; //shift the text position down

if ((y1==35) && (y2== 45)) //when the text almost goes off-screen, move it back up

{y1=0; y2=10; }

}

//---Wait for Coin/Credit---------------------------------------------------------------

while (digitalRead(coinInsert)==LOW) { //if coin inserted stay in servo enable loop

digitalWrite(LEDready, HIGH);

myGLCD.clrScr(); myGLCD.update();

myGLCD.print("Please make", CENTER, 0);

myGLCD.print(" a selection. ", CENTER, 10);

myGLCD.drawRect(20, 20, 63, 47);

myGLCD.drawRect(20, 20, 41, 47);

myGLCD.drawRect(20, 20, 63, 34);

myGLCD.update();

servoEnable(); }

}

void servoEnable(){

while (digitalRead(ButtonA) == HIGH || digitalRead(ButtonB) == HIGH ||

digitalRead(ButtonC) == HIGH || digitalRead(ButtonD) == HIGH) {

//---------Servo A----------------------------------------------------

if ((digitalRead(ButtonA) == LOW) ) {

for(int i=0; i<2; i++)

{digitalWrite(LEDready, HIGH); delay(50); digitalWrite(LEDready, LOW); delay(50); }

myGLCD.clrScr(); myGLCD.print("Vending", CENTER, 0);

myGLCD.drawRect(20, 20, 63, 47); myGLCD.drawRect(20, 20, 41, 47);

myGLCD.drawRect(20, 20, 63, 34); myGLCD.print("A1", 25, 24);

myGLCD.update();

for(int i=0; i<57; i++) // change this to adjust +- full revolution

{

digitalWrite(ServoA,HIGH);

delayMicroseconds(clockwise);

digitalWrite(ServoA,LOW);

delay(18.5); // 18.5ms

//delay(50); enable this line to slow servo rotation

}

break; } // when item is dispensed exit loop and return to wait for

coin

//---------Servo B----------------------------------------------------

if ((digitalRead(ButtonB) == LOW) ) {

for(int i=0; i<2; i++)

{digitalWrite(LEDready, HIGH); delay(50); digitalWrite(LEDready, LOW); delay(50); }

myGLCD.clrScr(); myGLCD.print("Vending", CENTER, 0);

myGLCD.drawRect(20, 20, 63, 47); myGLCD.drawRect(20, 20, 41, 47);

myGLCD.drawRect(20, 20, 63, 34); myGLCD.print("B1", 46, 24);

myGLCD.update();

for(int i=0; i<57; i++)

{

digitalWrite(ServoB,HIGH);

delayMicroseconds(clockwise);

digitalWrite(ServoB,LOW);

delay(18.5); // 18.5ms

//delay(50);

}

break; }

//---------Servo C----------------------------------------------------

if ((digitalRead(ButtonC) == LOW) ) {

for(int i=0; i<2; i++)

{digitalWrite(LEDready, HIGH); delay(50); digitalWrite(LEDready, LOW); delay(50); }

myGLCD.clrScr(); myGLCD.print("Vending", CENTER, 0);

myGLCD.drawRect(20, 20, 63, 47); myGLCD.drawRect(20, 20, 41, 47);

myGLCD.drawRect(20, 20, 63, 34); myGLCD.print("C2", 25, 37);

myGLCD.update();

for(int i=0; i<57; i++)

{

digitalWrite(ServoC,HIGH);

delayMicroseconds(clockwise);

digitalWrite(ServoC,LOW);

delay(18.5); // 18.5ms

//delay(50);

} break; }

//---------Servo D----------------------------------------------------

if ((digitalRead(ButtonD) == LOW) ) {

for(int i=0; i<2; i++)

{digitalWrite(LEDready, HIGH); delay(50); digitalWrite(LEDready, LOW); delay(50); }

myGLCD.clrScr(); myGLCD.print("Vending", CENTER, 0);

myGLCD.drawRect(20, 20,63,7); myGLCD.drawRect(20, 20, 41, 47);

myGLCD.drawRect(20, 20, 63, 34); myGLCD.print("D2", 46, 37);

myGLCD.update();

for(int i=0; i<57; i++)

{

digitalWrite(ServoD,HIGH);

delayMicroseconds(clockwise);

digitalWrite(ServoD,LOW);

delay(18.5); // 18.5ms

//delay(50);

}

break; }

}

}

์กฐํšŒ์ˆ˜ 3ํšŒ๋Œ“๊ธ€ 0๊ฐœ

์ตœ๊ทผ ๊ฒŒ์‹œ๋ฌผ

์ „์ฒด ๋ณด๊ธฐ

Comments


bottom of page