Go Down

Topic: bit of help need to make it work (Read 597 times) previous topic - next topic


Mar 14, 2014, 07:36 pm Last Edit: Mar 14, 2014, 08:05 pm by martintennant Reason: 1
hi i am very new to this ( but having great fun  :D  ) i am trying to blend to bit of code together to get a counter with 7 segment led display
this is were i have got to ...
I would like to know how to get the counter to display on the led up to 9 and then start again.
i can get the two bit to work but not together
i have use google but i am missing something

here is the code

Code: [Select]

int A = 7;   //Defines all pins on the Arduino Uno board in order of connection.
int B = 6;
int C = 4;  // DOT is pin 5, not used in this example.
int D = 3;
int E = 2;
int F = 8;
int G = 9;
byte num0 = 0x3F;  //Hexadecimal format based upon the A-G, 0-9 Chart in excel and the wiring      // of the segment (refer to the on/off table image below).
byte num1 = 0x6;
byte num2 = 0x5B;
byte num3 = 0x4F;
byte num4 = 0x66;
byte num5 = 0x6D;
byte num6 = 0x7C;
byte num7 = 0x7;
byte num8 = 0x7F;
byte num9 = 0x6F;
// this constant won't change:
const int  buttonPin = 12;    // the pin that the pushbutton is attached to
const int ledPin = 13;       // the pin that the LED is attached to

// Variables will change:
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button
void on(byte num)   // This function turns on the correct pins to display numbers passed to it         // through the variable "num".
 int result = bitRead(num, 0);  // Read the first binary entry in num and stores it in result.
     if (result == 1)  // Check to see if this segment should be on.
   {digitalWrite(A, HIGH);}   // Turns on the segment.
   else   // Otherwise, it turns it off.
   {digitalWrite(A, LOW);}  // Turns segment off.
     result = bitRead( num, 1);  // Same thing for the 6 remaining segments.
     if (result == 1)
   {digitalWrite(B, HIGH);}
   {digitalWrite(B, LOW);}    
   result = bitRead( num, 2);
     if (result == 1)
   {digitalWrite(C, HIGH);}
   {digitalWrite(C, LOW);}    
  result = bitRead( num, 3);
     if (result == 1)
   {digitalWrite(D, HIGH);}
   {digitalWrite(D, LOW);}    
  result = bitRead( num, 4);
     if (result == 1)
   {digitalWrite(E, HIGH);}
   {digitalWrite(E, LOW);}
  result = bitRead( num, 5);  
     if (result == 1)
   {digitalWrite(F, HIGH);}
   {digitalWrite(F, LOW);}    
  result = bitRead( num, 6);
     if (result == 1)
   {digitalWrite(G, HIGH);}
   {digitalWrite(G, LOW);}
void setup() {       // Our setup routine        
 pinMode(A, OUTPUT); // Making all pins outputs
 pinMode(B, OUTPUT);
 pinMode(C, OUTPUT);
 pinMode(D, OUTPUT);
 pinMode(E, OUTPUT);
 pinMode(F, OUTPUT);
 pinMode(G, OUTPUT);

 // initialize the button pin as a input:
 pinMode(buttonPin, INPUT);


void loop() {
 // read the pushbutton input pin:
 buttonState = digitalRead(buttonPin);

 // compare the buttonState to its previous state
 if (buttonState != lastButtonState) {
   // if the state has changed, increment the counter
   if (buttonState == HIGH) {
     // if the current state is HIGH then the button
     // wend from off to on:
     on(num0 (buttonPushCounter));
   else {
     // if the current state is LOW then the button
     // wend from on to off:
 // save the current state as the last state,
 //for next time through the loop
 lastButtonState = buttonState;

 // turns on the LED every four button pushes by
 // checking the modulo of the button push counter.
 // the modulo function gives you the remainder of
 // the division of two numbers:
 if (buttonPushCounter % 4 == 0) {
   digitalWrite(ledPin, HIGH);
 } else {
  digitalWrite(ledPin, LOW);


Code: [Select]
if (result == 1)
   {digitalWrite(B, HIGH);}
   {digitalWrite(B, LOW);}

So much simpler
Code: [Select]
digitalWrite(B, result ==1);
Or even skip the result assignment altogether.
What happened to the code tags?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.


FYI, the "#" CODE button is for posting code.
CLICK the MODIFY button.
CLICK the "#" CODE button. It will create a scrolling window for scrolling through the code.
Arduino UNOs, Pro-Minis, ATMega328, ATtiny85, LCDs, MCP4162, keypads,<br />DS18B20s,74c922,nRF24L01, RS232, SD card, RC fixed wing, quadcopter

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131