-
Fototrend
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Imy
veterán
Beleraktam a programba, de jelen esetben is össze vissza ugrál. Ha csak az encoder van benne, a hőmérséklet mérés ls kiírás nem, akkor jó. Okés, hogy a sok serial print, de az interuptnak nem kellene azt kiküszöbölnie?
#include <Adafruit_MAX31865.h>// Use software SPI: CS, DI, DO, CLKAdafruit_MAX31865 thermo = Adafruit_MAX31865(5, 6, 7, 8);// use hardware SPI, just pass in the CS pin//Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);// Rotary Encoder Module connectionsconst int PinSW=3; // Rotary Encoder Switchconst int PinDT=4; // DATA signalconst int PinCLK=2; // CLOCK signal// The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000#define RREF 430.0// The 'nominal' 0-degrees-C resistance of the sensor// 100.0 for PT100, 1000.0 for PT1000#define RNOMINAL 100.0//Resistance meterfloat Ra = 0.00385;float R0 = 20.9;float Rt;float T;///////ENCODER//////////////////////////// Variables to debounce Rotary Encoderlong TimeOfLastDebounce = 0;int DelayofDebounce = 0.01;// Store previous Pins stateint PreviousCLK;int PreviousDATA;int displaycounter=0; // Store current counter value/////////////////////////////// TEMPERATURE_SET///////////////////////////////////////////int Temp_set_pos;int Temp_set_last;int Temp_up;void setup() {Serial.begin(115200);Serial.println("Adafruit MAX31865 PT100 Sensor Test!");thermo.begin(MAX31865_2WIRE); // set to 2WIRE or 4WIRE as necessarypinMode(PinCLK,INPUT_PULLUP);pinMode(PinDT,INPUT_PULLUP);pinMode(PinSW,INPUT_PULLUP);// Put current pins state in variablesPreviousCLK=digitalRead(PinCLK);PreviousDATA=digitalRead(PinDT);// Set the Switch pin to use Arduino PULLUP resistorspinMode(PinSW, INPUT_PULLUP);}void loop() {///////////MAX31865////////////////////////////////////////////////////////////////////////////uint16_t rtd = thermo.readRTD();//Serial.print("RTD value: "); Serial.println(rtd);float ratio = rtd;ratio /= 32768;Rt = RREF * ratio;T = ((Rt - R0) / (R0 * Ra));//Serial.print("Ratio = "); Serial.println(ratio,8);Serial.print("Resistance = "); Serial.print(RREF * ratio, 2); Serial.println(" ohm");//Serial.print("Temperature = "); Serial.println(thermo.temperature(RNOMINAL, RREF));Serial.print("PakaTemp = "); Serial.print(T, 2); Serial.println(" C");// Check and print any faultsuint8_t fault = thermo.readFault();if (fault) {Serial.print("Fault 0x"); Serial.println(fault, HEX);if (fault & MAX31865_FAULT_HIGHTHRESH) {Serial.println("RTD High Threshold");}if (fault & MAX31865_FAULT_LOWTHRESH) {Serial.println("RTD Low Threshold");}if (fault & MAX31865_FAULT_REFINLOW) {Serial.println("REFIN- > 0.85 x Bias");}if (fault & MAX31865_FAULT_REFINHIGH) {Serial.println("REFIN- < 0.85 x Bias - FORCE- open");}if (fault & MAX31865_FAULT_RTDINLOW) {Serial.println("RTDIN- < 0.85 x Bias - FORCE- open");}if (fault & MAX31865_FAULT_OVUV) {Serial.println("Under/Over voltage");}thermo.clearFault();}Serial.println();//delay(500);// If enough time has passed check the rotary encoderif ((millis() - TimeOfLastDebounce) > DelayofDebounce) {check_rotary(); // Rotary Encoder check routine belowPreviousCLK=digitalRead(PinCLK);PreviousDATA=digitalRead(PinDT);TimeOfLastDebounce=millis(); // Set variable to current millis() timer}// Check if Rotary Encoder switch was pressedif (digitalRead(PinSW) == LOW) {displaycounter=0; // Reset counter to zeroSerial.print("Counter = "); Serial.println(displaycounter);}}// Check if Rotary Encoder was movedvoid check_rotary() {if ((PreviousCLK == 0) && (PreviousDATA == 1)) {if ((digitalRead(PinCLK) == 1) && (digitalRead(PinDT) == 0)) {displaycounter++;Serial.print("Counter = "); Serial.println(displaycounter);}if ((digitalRead(PinCLK) == 1) && (digitalRead(PinDT) == 1)) {displaycounter--;Serial.print("Counter = "); Serial.println(displaycounter);}}if ((PreviousCLK == 1) && (PreviousDATA == 0)) {if ((digitalRead(PinCLK) == 0) && (digitalRead(PinDT) == 1)) {displaycounter++;Serial.print("Counter = "); Serial.println(displaycounter);}if ((digitalRead(PinCLK) == 0) && (digitalRead(PinDT) == 0)) {displaycounter--;Serial.print("Counter = "); Serial.println(displaycounter);}}if ((PreviousCLK == 1) && (PreviousDATA == 1)) {if ((digitalRead(PinCLK) == 0) && (digitalRead(PinDT) == 1)) {displaycounter++;Serial.print("Counter = "); Serial.println(displaycounter);}if ((digitalRead(PinCLK) == 0) && (digitalRead(PinDT) == 0)) {displaycounter--;Serial.print("Counter = "); Serial.println(displaycounter);}}if ((PreviousCLK == 0) && (PreviousDATA == 0)) {if ((digitalRead(PinCLK) == 1) && (digitalRead(PinDT) == 0)) {displaycounter++;Serial.print("Counter = "); Serial.println(displaycounter);}if ((digitalRead(PinCLK) == 1) && (digitalRead(PinDT) == 1)) {displaycounter--;Serial.print("Counter = "); Serial.println(displaycounter);}}Serial.print("Counter = "); Serial.println(displaycounter);}
Új hozzászólás Aktív témák
- Milyen légkondit a lakásba?
- AMD Navi Radeon™ RX 9xxx sorozat
- ASUS routerek
- Ez lehet az Apple hajlítható telefonjának formája, mérete
- Arc Raiders
- Azonnali VGA-s kérdések órája
- Anime filmek és sorozatok
- Akciókamerák
- One otthoni szolgáltatások (TV, internet, telefon)
- OLED TV topic
- További aktív témák...
- MacBook Pro M1 13 inch 8/512GB magyar bill nálam a legolcsóbban
- Fujitsu 27" B27-8 TE Full HD 1920x1080 hófehér monitor állítható magasság, PIVOT, HDMI számla + gar
- AMD Ryzen 5 Félkonfig eladó!
- Asus Z13 Flow Acronym Limited Edition
- Bontatlan! Samsung Galaxy A56 8/256 GB Awesome Lightgray 2 év Garancia Beszámítás Házhozszállítás
- GYÖNYÖRŰ iPhone 12 64GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS4121
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone XR 128GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS3985, 100% Akkumulátor
- Eladó 1db Nokia steel hr hibrid okos óra dobozával
- ÁRCSÖKKENTÉS ASUS HD6870 videókártya
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
ekkold
