Saving instruction as a input?

Hi there,
Well I have a problem. I would like to programm 4 digit 7 segment display. I would like to use it, with assosiation with simple 0 - 7 keyboard, which I made, to show typed, for example password. Well the problem is, that I don't know how, or rather, Is it possible to save input data, as a fuction. I mean:

void setup() {

pinMode(1, OUTPUT); // a
pinMode(2, OUTPUT); // b
pinMode(3, OUTPUT); // c
pinMode(4, OUTPUT); // d
pinMode(5, OUTPUT); // e 
pinMode(6, OUTPUT); // f
pinMode(7, OUTPUT); // g
pinMode(8, OUTPUT); // D1
pinMode(9, OUTPUT); // D2
pinMode(10, OUTPUT); // D3
pinMode(11, OUTPUT); // D4

pinMode(14, INPUT); // A (BCD)
pinMode(15, INPUT); // B (BCD)
pinMode(16, INPUT); // C (BCD)
pinMode(17, INPUT); // 8 - for now, not in use
pinMode(18, INPUT); // 9 - for now, not in use
pinMode(19, INPUT); // E0 


digitalWrite(1, LOW); // a
digitalWrite(2, LOW); // b
digitalWrite(3, LOW); // c
digitalWrite(4, LOW); // d
digitalWrite(5, LOW); // e
digitalWrite(6, LOW); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, HIGH); // D2
digitalWrite(10, HIGH); // D3
digitalWrite(11, HIGH); // D4

}
void zeroD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, HIGH); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, LOW); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void oneD1() 
{
digitalWrite(1, LOW); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, LOW); // d
digitalWrite(5, LOW); // e
digitalWrite(6, LOW); // f
digitalWrite(7, LOW); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void twoD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, LOW); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, HIGH); // e
digitalWrite(6, LOW); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void threeD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, LOW); // e
digitalWrite(6, LOW); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void fourD1() 
{
digitalWrite(1, LOW); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, LOW); // d
digitalWrite(5, LOW); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void fiveD1()
{
digitalWrite(1, HIGH); // a
digitalWrite(2, LOW); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, LOW); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void sixD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, LOW); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, HIGH); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void sevenD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, LOW); // d
digitalWrite(5, LOW); // e
digitalWrite(6, LOW); // f
digitalWrite(7, LOW); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void eightD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, HIGH); // d
digitalWrite(5, HIGH); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void nineD1() 
{
digitalWrite(1, HIGH); // a
digitalWrite(2, HIGH); // b
digitalWrite(3, HIGH); // c
digitalWrite(4, LOW); // d
digitalWrite(5, LOW); // e
digitalWrite(6, HIGH); // f
digitalWrite(7, HIGH); // g
digitalWrite(8, HIGH); // D1
digitalWrite(9, LOW); // D2
digitalWrite(10, LOW); // D3
digitalWrite(11, LOW); // D4
}
void loop() { 
  
  digitalRead(14);
  digitalRead(15);
  digitalRead(16);
  digitalRead(19);
 
  if((digitalRead(14) == LOW) && (digitalRead(15) == LOW) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  zeroD1();
 }
  else if((digitalRead(14) == HIGH) && (digitalRead(15) == LOW) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  oneD1();
 }  
  else if((digitalRead(14) == LOW) && (digitalRead(15) == HIGH) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  twoD1();
 }
  else if((digitalRead(14) == HIGH) && (digitalRead(15) == HIGH) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  threeD1();
 }
  else if((digitalRead(14) == LOW) && (digitalRead(15) == LOW) && (digitalRead(16) == HIGH) && (digitalRead(19) == LOW)) {
  fourD1();
 }
  else if((digitalRead(14) == HIGH) && (digitalRead(15) == LOW) && (digitalRead(16) == HIGH) && (digitalRead(19) == LOW)) {
  fiveD1();
 }
  else if((digitalRead(14) == LOW) && (digitalRead(15) == HIGH) && (digitalRead(16) == HIGH) && (digitalRead(19) == LOW)) {
  sixD1();
 }
  else if((digitalRead(14) == HIGH) && (digitalRead(15) == HIGH) && (digitalRead(16) == HIGH) && (digitalRead(19) == LOW)) {
  sevenD1();
 }
}
//**********************

So i would like to save, for example, this:

if((digitalRead(14) == LOW) && (digitalRead(15) == LOW) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  zeroD1();
 }

into simple input value, which i could define using one word, for example " inputD1 ", and the most important, i have to call it later, without problems
Any ideas?

if((digitalRead(14) == LOW) && (digitalRead(15) == LOW) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW)) {
  zeroD1();
 }

could be put in a function like this

void aFunction()  //use any name you like within reason
{
  if ((digitalRead(14) == LOW) && (digitalRead(15) == LOW) && (digitalRead(16) == LOW) && (digitalRead(19) == LOW))
  {
    zeroD1();
  }
}

Then called like this

aFunction();

Is that what you had in mind ?

kinda but not exactly. Let' s say that number 1 is shown on first digit. From this position i would like to move to the second digit, and set value there. Now, I want arduino to remeber 1st value and show it, 2nd value and show it... until 4 digit will be done.

I just want to set choosen value to input value, which i could use later in that configuration :

inputValue1;
delay(5);
input Value2;
delay(5)
etc.. to inputValue4, then repeat

yeah.. its kinda confusing :slight_smile:

yeah.. its kinda confusing

It certainly is. You are not describing things very well

Typically a 4 digit 7 segment display actually only displays one digit at a time but repeats the display fast enough to make it look like all 4 are on at the same time. Of course, you don't have to display all 4 if you don't want to

As to the user input, suppose that the user enters 1234, what do you want to display, where and when ?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.