Помощь новичку с Mega 2560

J0cker
Offline
Зарегистрирован: 21.07.2014

В общем ситуация следующая. 

Есть 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);
  }

вот скетч который пытаюсь разтормошить. Я уже и методом ты ка пробовал и танцы с бубном нечего не помогает. Я новичек в микроконтроллерах так что не тыкайте паяльником.

J0cker
Offline
Зарегистрирован: 21.07.2014

Или я возможно неправильно подрубил купюрник.