Skip to main content
Arduino

Return to Question

Removed double spacing
Source Link
Greenonline
  • 3.2k
  • 7
  • 36
  • 48

Problems coding a 12 pin 7 segment display and grove temperature sensor with arduino unoArduino Uno

Hi I am trying to code my 12 pin 7seven segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling, so if anyone codecould help that would be muchlymuch appreciated.

I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor, however I want the temperature displayed with the 7 segment display. (Thats- that's where I need help).

//Temperature Variables
//thermistor = value of the thermistor
int a;
float temperature;
int thermistor=3975;
float resistance;
boolean DigitOn = LOW;
boolean DigitOff = HIGH;
boolean SegOn=HIGH;
boolean SegOff=LOW;
int DigitPins[] = {2, 3, 4, 5};
int SegmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
//N is for numbers and NxP is a number with a decimal point behind
int BLANK[] = {LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW};
int N0[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int N0P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH};
int N1[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N1P[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N2[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, LOW};
int N2P[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH};
int N3[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, LOW};
int N3P[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH};
int N4[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, LOW};
int N4P[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH};
int N5[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N5P[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int N6[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N6P[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N7[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N7P[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N8[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N8P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N9[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N9P[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int MIN[] = {LOW, LOW, LOW, LOW, LOW, LOW, HIGH, LOW};
 
//Array of pointers for the 4 digits
int* lights[4];
 
//char array coming from the serial interface
//4 numbers or chars, 4 optional decimal points, 1 end-of-line char
char incoming[9] = {};
 
void setup() {
 Serial.begin(19200);
 for (byte digit=0;digit<4;digit++) {
 pinMode(DigitPins[digit], OUTPUT);
 }
 for (byte seg=0;seg<8;seg++) {
 pinMode(SegmentPins[seg], OUTPUT);
 }
 //initialize display with 1.234
 lights[0] = N7;
 lights[1] = N9P;
 lights[2] = N3;
 lights[3] = N4;
}
 
void loop() {
 //Temperature Sensor
 a=analogRead(5);
 resistance=(float)(1023-a)*10000/a; //get the resistance of the sensor;
 temperature=1/(log(resistance/10000)/thermistor+1/298.15)-273.15;
//convert to temperature via datasheet&nbsp;;
 //delay(1000);
 Serial.print("Current temperature is ");
 Serial.println(temperature);
 //delay(500);
 //read the numbers and / or chars from the serial interface
 if (Serial.available() > 0) {
 int i = 0;
 //clear the array of char
 memset(incoming, 0, sizeof(incoming));
 while (Serial.available() > 0 && i < sizeof(incoming) - 1) {
 incoming[i] = Serial.read();
 i++;
 delay(3);
 }
 Serial.println(incoming);

 //show the input values
 for (int y = 0; y < 4; y++) {
 Serial.print(y);
 Serial.print(": ");
 for (int z = 0; z < 8; z++) {
 Serial.print(lights[y][z]);
 }
 Serial.println("");
 }
 }
 //end if, i.e. reading from serial interface
 //This part of the code is from the library SevSeg by Dean Reading
 for (byte seg=0;seg<8;seg++) {
 //Turn the relevant segment on
 digitalWrite(SegmentPins[seg],SegOn);
 //For each digit, turn relevant digits on
 for (byte digit=0;digit<4;digit++){
 if (lights[digit][seg]==1) {
 digitalWrite(DigitPins[digit],DigitOn);
 }
 //delay(200); //Uncomment this to see it in slow motion
 }
 //Turn all digits off
 for (byte digit=0;digit<4;digit++){
 digitalWrite(DigitPins[digit],DigitOff);
 }
 //Turn the relevant segment off
 digitalWrite(SegmentPins[seg],SegOff);
 } 
 //end of for
}

Problems coding a 12 pin 7 segment display and grove temperature sensor with arduino uno

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated.

I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor I want the temperature displayed with the 7 segment display. (Thats where I need help)

//Temperature Variables
//thermistor = value of the thermistor
int a;
float temperature;
int thermistor=3975;
float resistance;
boolean DigitOn = LOW;
boolean DigitOff = HIGH;
boolean SegOn=HIGH;
boolean SegOff=LOW;
int DigitPins[] = {2, 3, 4, 5};
int SegmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
//N is for numbers and NxP is a number with a decimal point behind
int BLANK[] = {LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW};
int N0[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int N0P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH};
int N1[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N1P[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N2[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, LOW};
int N2P[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH};
int N3[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, LOW};
int N3P[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH};
int N4[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, LOW};
int N4P[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH};
int N5[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N5P[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int N6[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N6P[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N7[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N7P[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N8[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N8P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N9[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N9P[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int MIN[] = {LOW, LOW, LOW, LOW, LOW, LOW, HIGH, LOW};
 
//Array of pointers for the 4 digits
int* lights[4];
 
//char array coming from the serial interface
//4 numbers or chars, 4 optional decimal points, 1 end-of-line char
char incoming[9] = {};
 
void setup() {
 Serial.begin(19200);
 for (byte digit=0;digit<4;digit++) {
 pinMode(DigitPins[digit], OUTPUT);
 }
 for (byte seg=0;seg<8;seg++) {
 pinMode(SegmentPins[seg], OUTPUT);
 }
 //initialize display with 1.234
 lights[0] = N7;
 lights[1] = N9P;
 lights[2] = N3;
 lights[3] = N4;
}
 
void loop() {
 //Temperature Sensor
 a=analogRead(5);
 resistance=(float)(1023-a)*10000/a; //get the resistance of the sensor;
 temperature=1/(log(resistance/10000)/thermistor+1/298.15)-273.15;
//convert to temperature via datasheet&nbsp;;
 //delay(1000);
 Serial.print("Current temperature is ");
 Serial.println(temperature);
 //delay(500);
 //read the numbers and / or chars from the serial interface
 if (Serial.available() > 0) {
 int i = 0;
 //clear the array of char
 memset(incoming, 0, sizeof(incoming));
 while (Serial.available() > 0 && i < sizeof(incoming) - 1) {
 incoming[i] = Serial.read();
 i++;
 delay(3);
 }
 Serial.println(incoming);

 //show the input values
 for (int y = 0; y < 4; y++) {
 Serial.print(y);
 Serial.print(": ");
 for (int z = 0; z < 8; z++) {
 Serial.print(lights[y][z]);
 }
 Serial.println("");
 }
 }
 //end if, i.e. reading from serial interface
 //This part of the code is from the library SevSeg by Dean Reading
 for (byte seg=0;seg<8;seg++) {
 //Turn the relevant segment on
 digitalWrite(SegmentPins[seg],SegOn);
 //For each digit, turn relevant digits on
 for (byte digit=0;digit<4;digit++){
 if (lights[digit][seg]==1) {
 digitalWrite(DigitPins[digit],DigitOn);
 }
 //delay(200); //Uncomment this to see it in slow motion
 }
 //Turn all digits off
 for (byte digit=0;digit<4;digit++){
 digitalWrite(DigitPins[digit],DigitOff);
 }
 //Turn the relevant segment off
 digitalWrite(SegmentPins[seg],SegOff);
 } 
 //end of for
}

Problems coding a 12 pin 7 segment display and grove temperature sensor with Arduino Uno

I am trying to code my 12 pin seven segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling, so if anyone could help that would be much appreciated.

My temperature sensor is displaying its information in the serial monitor, however I want the temperature displayed with the 7 segment display - that's where I need help.

//Temperature Variables
//thermistor = value of the thermistor
int a;
float temperature;
int thermistor=3975;
float resistance;
boolean DigitOn = LOW;
boolean DigitOff = HIGH;
boolean SegOn=HIGH;
boolean SegOff=LOW;
int DigitPins[] = {2, 3, 4, 5};
int SegmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
//N is for numbers and NxP is a number with a decimal point behind
int BLANK[] = {LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW};
int N0[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW};
int N0P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, HIGH};
int N1[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N1P[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N2[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, LOW};
int N2P[] = {HIGH, HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH};
int N3[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, LOW};
int N3P[] = {HIGH, HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH};
int N4[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, LOW};
int N4P[] = {LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH};
int N5[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N5P[] = {HIGH, LOW, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int N6[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N6P[] = {HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N7[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW};
int N7P[] = {HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH};
int N8[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW};
int N8P[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int N9[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, LOW};
int N9P[] = {HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH};
int MIN[] = {LOW, LOW, LOW, LOW, LOW, LOW, HIGH, LOW};
 
//Array of pointers for the 4 digits
int* lights[4];
 
//char array coming from the serial interface
//4 numbers or chars, 4 optional decimal points, 1 end-of-line char
char incoming[9] = {};
 
void setup() {
 Serial.begin(19200);
 for (byte digit=0;digit<4;digit++) {
 pinMode(DigitPins[digit], OUTPUT);
 }
 for (byte seg=0;seg<8;seg++) {
 pinMode(SegmentPins[seg], OUTPUT);
 }
 //initialize display with 1.234
 lights[0] = N7;
 lights[1] = N9P;
 lights[2] = N3;
 lights[3] = N4;
}
 
void loop() {
 //Temperature Sensor
 a=analogRead(5);
 resistance=(float)(1023-a)*10000/a; //get the resistance of the sensor;
 temperature=1/(log(resistance/10000)/thermistor+1/298.15)-273.15;
//convert to temperature via datasheet&nbsp;;
 //delay(1000);
 Serial.print("Current temperature is ");
 Serial.println(temperature);
 //delay(500);
 //read the numbers and / or chars from the serial interface
 if (Serial.available() > 0) {
 int i = 0;
 //clear the array of char
 memset(incoming, 0, sizeof(incoming));
 while (Serial.available() > 0 && i < sizeof(incoming) - 1) {
 incoming[i] = Serial.read();
 i++;
 delay(3);
 }
 Serial.println(incoming);
 //show the input values
 for (int y = 0; y < 4; y++) {
 Serial.print(y);
 Serial.print(": ");
 for (int z = 0; z < 8; z++) {
 Serial.print(lights[y][z]);
 }
 Serial.println("");
 }
 }
 //end if, i.e. reading from serial interface
 //This part of the code is from the library SevSeg by Dean Reading
 for (byte seg=0;seg<8;seg++) {
 //Turn the relevant segment on
 digitalWrite(SegmentPins[seg],SegOn);
 //For each digit, turn relevant digits on
 for (byte digit=0;digit<4;digit++){
 if (lights[digit][seg]==1) {
 digitalWrite(DigitPins[digit],DigitOn);
 }
 //delay(200); //Uncomment this to see it in slow motion
 }
 //Turn all digits off
 for (byte digit=0;digit<4;digit++){
 digitalWrite(DigitPins[digit],DigitOff);
 }
 //Turn the relevant segment off
 digitalWrite(SegmentPins[seg],SegOff);
 } 
 //end of for
}
made question more clear
Source Link
Nick Gammon
  • 38.9k
  • 13
  • 69
  • 125

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated.

I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor I want the temperature displayed with the 7 segment display. (Thats where I need help)

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated. I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor I want the temperature displayed with the 7 segment display. (Thats where I need help)

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated.

I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor I want the temperature displayed with the 7 segment display. (Thats where I need help)

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated. I don't have a reputation over 10 so I can't put in images :( Is there some wayMy temperature sensor is displaying its information in the serial monitor I can showwant the images?temperature displayed with the 7 segment display. (Thats where I need help)

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated. I don't have a reputation over 10 so I can't put in images :( Is there some way I can show the images?

Hi I am trying to code my 12 pin 7 segment display to display the temperature from my grove temperature sensor. I am new to this and I have been struggling if anyone code help that would be muchly appreciated. I don't have a reputation over 10 so I can't put in images :( My temperature sensor is displaying its information in the serial monitor I want the temperature displayed with the 7 segment display. (Thats where I need help)

Post Migrated Here from electronics.stackexchange.com (revisions)
Source Link
Loading
lang-cpp

AltStyle によって変換されたページ (->オリジナル) /