I have added the interrput part to my code but it wont add to the counter. Therefor it only shows a constant 00. Can anyone see watch wrong with it ?
int pin1 = 3;
int pin2 = 4; // --6--
int pin3 = 5; // 5 | | 7
int pin4 = 6; // |--4--|
int pin5 = 7; // 1 | | 3
int pin6 = 8; // --2--
int pin7 = 9;
int gnd1 = 11; // gnd1 is display 1's gnd
int gnd2 = 10; // gnd2 is display 2's gnd
int timer = 500; // A timer, to run the for loop 500 times, which turns out as 1 second.
int sens1 = 0; // Analog measurement pin
float gildi = 0;
float gildi1 = 0;
int fyrritala = 0; // The first 7-segment display
int seinnitala = 0; // The second 7-segment display
int gamlitimi = 0;
//volatile int stada = HIGH;
volatile int talning = 0;
int gamlatalning = 0;
void setup(){
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT); //The following sets up all of the pins for use.
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
pinMode(gnd1, OUTPUT);
pinMode(gnd2, OUTPUT);
pinMode(sens1, INPUT);
attachInterrupt(0, talning_nemi, RISING); // Assigning the interrput to when digital pin 2 rises
// from LOW to HIGH it triggers the interrupt
Serial.begin(9600);
}
void loop()
{
if (talning != gamlatalning){ // Here should the measured time be calculated if old count isn´t he same as the new
gildi1 = (millis() - gamlitimi)/1000;
gildi = (1/(gildi1))/3600; // convert the value from seconds/turn to turns/minute
talning = gamlatalning;
gamlitimi = millis();
//Serial.println(talning); // For debugging
//Serial.println(gamlatalning);
if ((0 <= gildi) && (gildi < 10)){
fyrritala = 0;
seinnitala = gildi;
}
if ((10 <= gildi) && (gildi < 20)){
fyrritala = 1;
seinnitala = gildi - 10;
}
if ((20 <= gildi) && (gildi < 30)){
fyrritala = 2;
seinnitala = gildi - 20;
}
if ((30 <= gildi) && (gildi < 40)){
fyrritala = 3;
seinnitala = gildi - 30;
}
if ((40 <= gildi) && (gildi < 50)){
fyrritala = 4;
seinnitala = gildi - 40;
}
if ((50 <= gildi) && (gildi < 60)){
fyrritala = 5;
seinnitala = gildi - 50;
}
if ((60 <= gildi) && (gildi < 70)){
fyrritala = 6;
seinnitala = gildi - 60;
}
if ((70 <= gildi) && (gildi < 80)){
fyrritala = 7;
seinnitala = gildi - 70;
}
if ((80 <= gildi) && (gildi < 90)){
fyrritala = 8;
seinnitala = gildi - 80;
}
if (90 <= gildi){
fyrritala = 9;
seinnitala = gildi - 90;
}
//Serial.println(fyrritala);
//Serial.println(seinnitala);
//for (int i=0; i<timer; i++){
}
digitalWrite(gnd2, B1);
if (fyrritala == 0){
tala0();
}
if (fyrritala == 1){
tala1();
}
if (fyrritala == 2){
tala2();
}
if (fyrritala == 3){
tala3();
}
if (fyrritala == 4){
tala4();
}
if (fyrritala == 5){
tala5();
}
if (fyrritala == 6){
tala6();
}
if (fyrritala == 7){
tala7();
}
if (fyrritala == 8){
tala8();
}
if (fyrritala == 9){
tala9();
}
delay(0.5);
digitalWrite(gnd2, B0);
digitalWrite(gnd1, B1);
if (seinnitala == 0){
tala0();
}
if (seinnitala == 1){
tala1();
}
if (seinnitala == 2){
tala2();
}
if (seinnitala == 3){
tala3();
}
if (seinnitala == 4){
tala4();
}
if (seinnitala == 5){
tala5();
}
if (seinnitala == 6){
tala6();
}
if (seinnitala == 7){
tala7();
}
if (seinnitala == 8){
tala8();
}
if (seinnitala == 9){
tala9();
}
delay(0.5);
digitalWrite(gnd1, B0);
//}
//fyrritala = 0;
//seinnitala = 0;
}
void tala0(){ //Writes the number 0 to the display
digitalWrite(pin1, B1);
digitalWrite(pin2, B1);
digitalWrite(pin3, B1);
digitalWrite(pin4, B0);
digitalWrite(pin5, B1);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void tala1(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B0);
digitalWrite(pin3, B1);
digitalWrite(pin4, B0);
digitalWrite(pin5, B0);
digitalWrite(pin6, B0);
digitalWrite(pin7, B1);
}
void tala2(){
digitalWrite(pin1, B1);
digitalWrite(pin2, B1);
digitalWrite(pin3, B0);
digitalWrite(pin4, B1);
digitalWrite(pin5, B0);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void tala3(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B1);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B0);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void tala4(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B0);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B1);
digitalWrite(pin6, B0);
digitalWrite(pin7, B1);
}
void tala5(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B1);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B1);
digitalWrite(pin6, B1);
digitalWrite(pin7, B0);
}
void tala6(){
digitalWrite(pin1, B1);
digitalWrite(pin2, B1);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B1);
digitalWrite(pin6, B1);
digitalWrite(pin7, B0);
}
void tala7(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B0);
digitalWrite(pin3, B1);
digitalWrite(pin4, B0);
digitalWrite(pin5, B0);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void tala8(){
digitalWrite(pin1, B1);
digitalWrite(pin2, B1);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B1);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void tala9(){
digitalWrite(pin1, B0);
digitalWrite(pin2, B0);
digitalWrite(pin3, B1);
digitalWrite(pin4, B1);
digitalWrite(pin5, B1);
digitalWrite(pin6, B1);
digitalWrite(pin7, B1);
}
void talning_nemi(){
talning++ ;
Serial.println(talning);
}