Часть III. Практическое применение Arduino
Таблица 17.1. Таблица настройки переключателей первого и второго блока
Функция
Первый блок
Второй блок
1 2 3 4 5 6 7 8 1 2 3 4
Reject
Ruble
10
on
Accept Ruble 10
off
Reject Ruble 50
on
Accept Ruble 50
off
Reject Ruble 100
on
Accept Ruble 100
off
Reject Ruble 500
on
Accept Ruble 500
off
Reject Ruble 1000
on
Accept Ruble 1000
off
High Acceptance
on
High Security
off
Harness disable
on
Harness enable
off
Inhibit Active High
on
Inhibit Active Low
off
1 pulse / Ruble 10
off
off
2 pulse / Ruble 10
on
off
5 pulse / Ruble 10
off
on
20 pulse / Ruble 10
on
on
50ms on/50 ms off
off
off
60ms on/300 ms off
on
off
30ms on/50 ms off
off
on
150ms on/150 ms off
on
on
17.2. Подключение купюроприемника ICT V7
к Arduino
Купюроприемник оснащен кабелем для подключения к автомату, на конце кабеля
имеется разъем 3×3 (рис. 17.4). Назначение интересующих нас выводов следующее:
красный — 12 В;
оранжевый — GND;
Глава 17. Работа Arduino с купюроприемником
237
желтый —
INHIBIT+
;
зеленый —
INHIBIT-
;
синий —
SIGNAL+
;
фиолетовый —
SIGNAL-
.
Рис. 17.4. Кабель подключения купюроприемника ICT V7
Подключаем купюроприемник к Arduino с помощью протокола
pulse
. Установка
переключателей приведена в табл. 17.2.
Таблица 17.2. Таблица установки переключателей
Первый блок
Второй блок
Третий блок
1 2 3 4 5 6 7 8 1 2 3 4 1 2 3 4
off off off on on off off off off off off off on on off оff
Рис. 17.5. Схема подключения купюроприемника ICT V7 к Arduino
238
Часть III. Практическое применение Arduino
Я установил режим
pulse
c полярностью
High
, 1 импульс на 10 руб. (5 — на 50 руб.,
10 — на 100 руб.), длительность импульса 50 мсек, качество приема низкое, отсут-
ствие сигнала блокировки купюроприемника и прием 10, 50, 100 рублевых купюр
с отторжением 500- и 1000-рублевых купюр.
Схема подключения приведена на рис. 17.5.
17.3. Скетч для получения номинала
принимаемой купюры
Выход
D2
Arduino подсоединен к выходу
SIGNAL+
купюроприемника и установлен
в режим получения данных (
INPUT
). Через резистор 4,7 кОм (см. рис. 17.5) он под-
тянут к питанию +5 В и на нем находится уровень
HIGH
. После получения купю-
ры купюроприемник посылает импульсы продолжительностью 50 мсек на выход
SIGNAL+
, устанавливая на входе
D2
уровень
LOW
и вызывая процедуру обработки пре-
рывания, где инкрементируется счетчик количества импульсов. В основном цикле
программы проверяется время, прошедшее после получения первого импульса, и
если оно превысило 1000 мсек, выводится номинал полученной купюры (на основе
количества импульсов), а счетчик обнуляется до поступления первого импульса
при приеме новой купюры.
Код скетча представлен в листинге 17.1.
Листинг 17.1
const int moneyPin=2; // подключение SIGNAL+
int money=0; // номинал принятой купюры
unsigned long timeAllPulse=2000; // макс. время приема купюры
unsigned long timeCount=0;
void setup()
{
Serial.begin(9600);
pinMode(moneyPin,INPUT);
attachInterrupt(0,count_pulse,FALLING);
Serial.println("ready");
}
void loop()
{
// прошло максимальное время приема купюры? – вывести номинал
if(money>0 && (millis()-timeCount)>timeAllPulse)
{
Serial.print("money=");
Serial.println(10*money);
Do'stlaringiz bilan baham: |