1
Projects and Designs / Re: Countdown counter using IR TCRT5000
« on: January 23, 2021, 06:13:34 PM »
A highly modified NerfGun, including backpack for 1000 rounds, counter, speed controller, semi-auto/burst/auto shoot...
here is my code
here is my code
Code: [Select]
//Library
#include "SevenSeg.h"
// parameters
SevenSeg disp (10, 6, 4, 2, 1, 9, 5); //Defines the segments A-G: SevenSeg(A, B, C, D, E, F, G);
const int numOfDigits = 3; //number of digits
int digitPins [numOfDigits] = {11, 8, 7}; //CC(or CA) pins of segment
//Variables
int AmmoCount; // Ammo_current_count
int AmmoMax; // Ammo_full magazine
int Threshold;
int inLEDvar;
int inLEDvarState;
int inLEDvarLastState;
int outLEDvar;
int outLEDvarState;
int outLEDvarLastState;
void setup()
{
pinMode (A0, INPUT); // in_LED_Sensor
pinMode (A1,INPUT); // out_LED_Sensor
Threshold = 950;
AmmoMax = 100;
AmmoCount = AmmoMax;
disp.setRefreshRate(150);
inLEDvarLastState = 0;
inLEDvarState = 0;
outLEDvarLastState = 0;
outLEDvarState = 0;
disp.setDigitPins ( numOfDigits , digitPins );
disp.setCommonAnode();
}
void loop()
{
disp.write(AmmoCount);
inLEDvar = analogRead (A0); // read in_LED_Sensor
outLEDvar = analogRead (A1); // read out_LED_Sensor
if (inLEDvar > Threshold)
{
inLEDvarState = 1;
if (inLEDvarState != inLEDvarLastState)
{
if (AmmoCount == 0)
{
disp.write("000");
}
else
{
AmmoCount = AmmoCount - 1;
inLEDvarState = 0;
}
}
else
{
inLEDvar = 0;
inLEDvarLastState = inLEDvarState;
}
}
}