Go Down

Topic: duda con libreria sevseg (Read 113 times) previous topic - next topic

Ariasislas

podrías ayudar con el siguiente código? :o
lo que pasa es que me muestra la temperatura pero muy rápido y quiero que espere 500 millisegundos por lectura y lo muestre en el display, espero puedas ayudarme  te lo agradezco buen día.
Code: [Select]
#include "SevSeg.h"
 SevSeg sevseg; //Instantiate a seven segment object

float temperaturaC = 0;
int temperaturaPin = 0;
void setup() {
   byte numDigits = 3;   
   byte digitPins[] = {12, 9, 8};
   byte segmentPins[] = {11, 7, 4, 2, 1, 10, 5, 3};
   bool resistorsOnSegments = false; // 'false' means resistors are on digit pins
   byte hardwareConfig = COMMON_CATHODE; // See README.md for options
   sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
   
}

void loop() {

temperaturaC = analogRead(temperaturaPin); // captura temperatura del sensor
temperaturaC = (5.0 * temperaturaC * 100.0)/1024.0; // convierte a grados centígrados
 
  sevseg.setNumber(temperaturaC,1); // Displays '21.4'
 
  sevseg.refreshDisplay();
 
  sevseg.setBrightness(90);

 
}

surbyte

#1
Aug 11, 2017, 01:27 am Last Edit: Aug 11, 2017, 01:28 am by surbyte
Agrega un delay usando millis()

Code: [Select]


// define como global
unsigned long start;

void setup() {
//
}

void loop() {

  if (millis() - start > 1000) {
      temperaturaC = analogRead(temperaturaPin); // captura temperatura del sensor
      temperaturaC = (5.0 * temperaturaC * 100.0)/1024.0; // convierte a grados centígrados
 
      sevseg.setNumber(temperaturaC,1); // Displays '21.4'
  
     sevseg.refreshDisplay();
 
     sevseg.setBrightness(90);
     start = millis();
 }
  
}


no se si  sevseg.refreshDisplay(); debe permanecer dentro del loop o fuera
Si no se refrezca bien, ponlo fuera del if {}

Ariasislas

#2
Aug 11, 2017, 05:11 am Last Edit: Aug 11, 2017, 05:17 am by Ariasislas
perfectamente trabajando surbyte muchas gracias.
el codigo muestra la temperatura con un sensor lm35 en un display de 3 digitos 7 segmentos, adjunto el codigo por si a alguien le interesa. pd: no olvides tener la libreria de sevseg.


Code: [Select]
#include "SevSeg.h"
 SevSeg sevseg; //Instantiate a seven segment object
unsigned long start;
float temperaturaC = 0;
int temperaturaPin = 0;
void setup() {
   byte numDigits = 3;   
   byte digitPins[] = {12, 9, 8};
   byte segmentPins[] = {11, 7, 4, 2, 1, 10, 5, 3};
   bool resistorsOnSegments = false; // 'false' means resistors are on digit pins
   byte hardwareConfig = COMMON_CATHODE; // See README.md for options
   sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
   
}

void loop() {
if (millis() - start > 1000){
temperaturaC = analogRead(temperaturaPin); // captura temperatura del sensor
temperaturaC = (5.0 * temperaturaC * 100.0)/1024.0; // convierte a grados centígrados
 
  sevseg.setNumber(temperaturaC,1); // Displays '21.4c'
 
 
 
  sevseg.setBrightness(90);
  start = millis();

}
sevseg.refreshDisplay();
}

Go Up