- Xiaomi 12T - egytucat
- Samsung Galaxy S23 Ultra - non plus ultra
- Milyen okostelefont vegyek?
- Samsung Galaxy A55 - új év, régi stratégia
- Milyen hagyományos (nem okos-) telefont vegyek?
- Remekül néz ki a szögletes Z Fold6
- Fotók, videók mobillal
- Vodafone mobilszolgáltatások
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Azonnali mobilos kérdések órája
Hirdetés
-
Remekül néz ki a szögletes Z Fold6
ma Kémfotókon csodálható meg az S24 Ultra vonásaival érkező hajlítható.
-
Szilárdtest-akkumulátorokat fejleszt Kína, jöhet az áttörés?
it 830 millió dollárnak megfelelő összeget költ a szilárdtest-akkumulátorok fejlesztésére Kína a jelentések alapján.
-
Viszonylag pénztárcabarát lett az AOC 280 Hz-es VA monitorja
ph Úgy fest, hogy a 27 hüvelykes, Agon szériás képernyő be fog férni a 100 000 forintos összeghatár alá.
-
Mobilarena
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
-
lanszelot
addikt
válasz bagarol #20070 üzenetére
Úgy néz ki így már működik
#include <MQ135.h> /*gaz erzekelo, de nem kell neki igazabol*/
#include <Adafruit_SSD1306.h> /*oled display*/
#include <splash.h> /*oled display -nek kell*/
#include <max6675.h> /*homero*/
int thermoDO = 10; /*valtozo a homero DO pin -nek*/
int thermoCS = 9; /*valtozo a homero CS pin -nek*/
int thermoCLK = 8; /*valtozo a homero CLK pin -nek*/
volatile uint32_t debounce= 0;
byte gomb = 0;
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
const int ledPin = 6; /*LED pin*/
const byte interruptPin = 3;
volatile int gombNyomas = 0 ; /*valtozo a gomb nyomas szamlalasara*/
uint32_t lastms= 0;
void gombotnyom(){
gomb++; /* növeljük 1-el a gombnyomások számát */
if (millis() - debounce > 80){ /* eltelt 80 msec ? */
gombNyomas ++; /* növeljük 1-el a gombnyomások számát */
if (gombNyomas >3) gombNyomas = 1;
debounce = millis();
}
}
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void mindenRajtaVan() {
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);/*negyzet a gas felirat kore feher*/
digitalWrite(ledPin, HIGH);} /*LED bekapcsol*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK); /*negyzet a gas felirat kore fekete*/
digitalWrite(ledPin, LOW);} /*LED kikapcsol*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void homeroVanRajta() {
digitalWrite(ledPin, LOW); /*LED kikapcsol*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(2); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.display(); /*to shows or update your TEXT*/
}
void gazVanRajta() {
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(0,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2= ");
display.print(sensorValue);
display.setTextSize(1);
display.print(" PPM");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(30, 39, 60, 22, 2, WHITE);/*negyzet a gas felirat kore feher*/
digitalWrite(ledPin, HIGH);} /*LED bekapcsol*/
else {display.drawRoundRect(30, 39, 60, 22, 2, BLACK); /*negyzet a gas felirat kore fekete*/
digitalWrite(ledPin, LOW);} /*LED kikapcsol*/
a^=1;
}
display.setTextSize(2);
display.setCursor(20,42);
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void megnyomva() {
switch (gombNyomas) {
case 0:
mindenRajtaVan();
break;
case 1:
homeroVanRajta();
break;
case 2:
gazVanRajta();
break;
}
} /* megnyomva_end */
void setup() {
Serial.begin(9600); /*elindítja a sorosportot, 9600 baud beállítással. Ez azért jó, mert a Serial Monitoron a program futását tudod monitorozni*/
pinMode(ledPin, OUTPUT); /*inicializálja a LED pin -jet outputnak*/
pinMode(interruptPin, INPUT_PULLUP); /*inicializálja a gomb pin-t inputnak , default HIGH !!! */
attachInterrupt(digitalPinToInterrupt(interruptPin), gombotnyom, LOW); /* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
Serial.println("MAX6675 test");
/*wait for MAX chip to stabilize*/
delay(500);
/*SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally*/
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); /*Address 0x3C for 128x32*/
display.display();
delay(2000);
}
void loop() {
if (millis() - lastms > 500)
{
lastms = millis();
if (gomb) /* volt valamennyi gombnyomás */
{
gomb = 0;
gombNyomas = gombNyomas%3 ;
Serial.println(gombNyomas); /* kiírjuk hány gombnyomásnál tartasz */
}
megnyomva();
}
}- A loop -ból kivettem a gombNyomas++ , mert a gombotnyom functionban is hozzá van adva meg ott is, akkor 2-t ad mindig hozzá.
- Illetve, ha jól értettem nem kell a kondenzátor, ezért így kötöttem be a gombotNagyon szépen köszönöm a segítséget mindenkinek
Lesz mit még agyalnom rajta, hogy teljesen megértsem mi hogyan
kérdés:
gáz érzékelőnek miért kell hogy benne legyen a function-ba a 3 változója?
Ha kiteszem a többi változóhoz a gáz érzékelő nem működik.
Új hozzászólás Aktív témák
- ZIDOO médialejátszók
- AMD GPU-k jövője - amit tudni vélünk
- Mini-ITX
- GTA V
- Anglia - élmények, tapasztalatok
- Vigneau interaktív lokálblogja
- A Sony szerint Japánon kívül is hódíthat az anime
- Skull and Bones - Egy hétig ingyen játszhatunk vele
- A fociról könnyedén, egy baráti társaságban
- HiFi műszaki szemmel - sztereó hangrendszerek
- További aktív témák...
- Z690 + i9-12900K + 32GB DDR5 6600MHz + ingyenes országos házhozszállítás + garancia
- SednaEarfit XELASTEC for AirPods Pro! Legjobb gumiharang Airpods pro modellekhez!
- Különböző típusú és méretű illesztékek/gumiharang/ Ha a kényelmet és hangminőség fontosnak tartod!
- Ulanzi FM01 hordozható ködgép, füstgép, ÚJ
- AsRock X570 Phantom Gaming-ITX mini ITX - AMD Ryzen 5800X CPU - Corsair Vengeance RGB PRO 2x16GB RAM
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs