Помощь новичку с Mega 2560
- Войдите на сайт для отправки комментариев
Пнд, 21/07/2014 - 19:04
В общем ситуация следующая.
Есть Mega 2560 и есть купюрник APEX 540.
Пытаюсь их подружить но понятия не имею на кокую ногу кидать импульс с приемника.Нашел скетч работы с мотнетником но как я понял поддержка купюрника тож есть.

Вот схема подключения но в datasheet atmega2560 прямого обозначения D1 D2 и т.д.
// купюник IC A7 V7
const int moneyPin1=2;
// монетник CH-926
const int moneyPin2=3;
int pulse1=0;
int pulse2=0;
unsigned long timeAllPulse1=2000; // макс. время приема купюры
unsigned long timeAllPulse2=1000; // макс. время приема монеты
unsigned long timeCount1=0;
unsigned long timeCount2=0;
float nominals2[6]={0,0.5,1,2,10,5};
float sum=0.0;
// дисплей WH1602
#include "LiquidCrystal.h"
LiquidCrystal lcd(12,11,7,6,5,4);
void setup()
{
Serial.begin(9600);
pinMode(moneyPin1,INPUT);
pinMode(moneyPin2,INPUT);
//attachInterrupt(0,count_pulse,FALLING);
attachInterrupt(1,count_pulse2,FALLING);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("coin ok!");
}
void loop()
{
// прошло максимальное время приема монеты?
if(pulse2>0 && (millis()-timeCount2)>timeAllPulse2)
{
sum+=nominals2[pulse2];
Serial.println(nominals2[pulse2]);
lcd.clear();
lcd.setCursor(0,0);lcd.print("1=");
lcd.setCursor(2,0);lcd.print(nominals2[pulse2]);
lcd.setCursor(0,1);lcd.print("*=");
lcd.setCursor(2,1);lcd.print(sum);
pulse2=0;
}
}
// обработка прерывания монетоприемника - получить кол-во импульсов
//
void count_pulse2()
{
//detachInterrupt(0);
detachInterrupt(1);
pulse2++;
if(pulse2==1)
timeCount2=millis();
//attachInterrupt(0,count_pulse,FALLING);
attachInterrupt(1,count_pulse2,FALLING);
}
вот скетч который пытаюсь разтормошить. Я уже и методом ты ка пробовал и танцы с бубном нечего не помогает. Я новичек в микроконтроллерах так что не тыкайте паяльником.
Или я возможно неправильно подрубил купюрник.