Smart Coin Dispenser

 

/*

* Device for retrieve coins in a given amount.

* Works Manually trough keypad presses (only 1 to 9)

* Works remotely with a remote control.

* Works with voice commands trough Alexa or other vice assistants. Need also an Universal Remota Controlfor home automation.

* Make the UR learn the remote control and configura apropriate scenes and routines in Alexa.

*

* Feel free to develop and improve! and please let me know.

*

* Arduino Project Hub

* NerdFatherRj - Rio de Janeiro - BRA - Dec.2020.

*

*/

#include

#include

#include

#include

Servo

Srv

;

int

RECV_PIN

=

12

;

//digital port for IR Led

float

armazenavalor1

;

float

armazenavalor2

;

IRrecv

irrecv

(

RECV_PIN

);

decode_results

results

;

const

byte

LINHAS

=

4

;

// keypad lines

const

byte

COLUNAS

=

4

;

// keypad columns

const

char

TECLAS_MATRIZ

[

LINHAS

][

COLUNAS

]

=

{

// keyboard mapping

{

'1'

,

'2'

,

'3'

,

'A'

},

{

'4'

,

'5'

,

'6'

,

'B'

},

{

'7'

,

'8'

,

'9'

,

'C'

},

{

'*'

,

'0'

,

'#'

,

'D'

}

};

const

byte

PINOS_LINHAS

[

LINHAS

]

=

{

9

,

8

,

7

,

6

};

// keypad lines

const

byte

PINOS_COLUNAS

[

COLUNAS

]

=

{

5

,

4

,

3

,

2

};

// keypad columns

Keypad

teclado_personalizado

=

Keypad

(

makeKeymap

(

TECLAS_MATRIZ

),

PINOS_LINHAS

,

PINOS_COLUNAS

,

LINHAS

,

COLUNAS

);

// keypad on

int

Fora

=

50

;

//Must calibrate to suit your needs.

int

Dentro

=

150

;

//Must calibrate to suit your needs.

void

setup

()

{

Serial

.

begin

(

9600

);

pinMode

(

12

,

INPUT

);

// ir module

irrecv

.

enableIRIn

();

// ir initialize

Srv

.

attach

(

11

);

delay

(

250

);

Srv

.

write

(

Fora

);

//lever out waiting for pushing the coins.

}

void

loop

()

{

char

leitura_teclas

=

teclado_personalizado

.

getKey

();

switch

(

leitura_teclas

){

case

'1'

:

//keypad 1 pressed and so on

pushPull1

();

break

;

case

'2'

:

pushPull2

();

break

;

case

'3'

:

pushPull3

();

break

;

case

'4'

:

pushPull4

();

break

;

case

'5'

:

pushPull5

();

break

;

case

'6'

:

pushPull6

();

break

;

case

'7'

:

pushPull7

;

break

;

case

'8'

:

pushPull8

();

break

;

case

'9'

:

pushPull9

();

break

;

}

//end switch

/* Routines for IR control */

if

(

irrecv

.

decode

(

&

results

))

{

Serial

.

print

(

"Valor lido : "

);

Serial

.

println

(

results

.

value

,

HEX

);

armazenavalor1

=

(

results

.

value

);

irrecv

.

resume

();

armazenavalor2

=

Read more custom BY HOANGLM with new data process: How To Built Your Own Coin Slot Operated Computer – PDFCOFFEE.COM

(

results

.

value

);

delay

(

500

);

if

(

armazenavalor1

==

0xFF30CF

){

//button "1" pressed

pushPull1

();

}

irrecv

.

resume

();

if

(

armazenavalor1

==

0xFF18E7

){

//button "2" pressed

pushPull2

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF7A85

){

//button "3" pressed

pushPull3

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF10EF

){

//button "4" pressed

pushPull4

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF38C7

){

//button "5" pressed

pushPull5

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF5AA5

){

//button "6" pressed

pushPull6

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF42BD

){

//button "7" pressed

pushPull7

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF4AB5

){

//button "8" pressed

pushPull8

();

}

irrecv

.

resume

();

//Le o prximo valor

if

(

armazenavalor1

==

0xFF52AD

){

//button "9" pressed

pushPull9

();

}

irrecv

.

resume

();

//Le o prximo valor

}

//end if decodresults

}

//end loop

void

pushPull

(){

Srv

.

write

(

Dentro

);

delay

(

300

);

Srv

.

write

(

Fora

);

delay

(

300

);

}

void

pushPull1

()

{

pushPull

();

}

void

pushPull2

()

{

pushPull

();

pushPull

();

}

void

pushPull3

()

{

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull4

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull5

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull6

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull7

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull8

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

}

void

pushPull9

()

{

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

();

pushPull

Read more custom BY HOANGLM with new data process: How to Make a Coin Bezel Necklace – Easy!

();

}

informant : https://ontopwiki.com
Category custom BY HOANGLM with newfangled data summons : Finance

Post navigation

Leave a Comment

Trả lời

Email của bạn sẽ không được hiển thị công khai.