Hirdetés
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- iPhone topik
- Két kamerával cserélné az iPhone Air a zakót kapucnis pulcsira
- Vivo X200 Pro - a kétszázát!
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Xiaomi 14T Pro - teljes a család?
- Samsung Galaxy S25 - végre van kicsi!
- Mobil flották
- Telekom mobilszolgáltatások
- One mobilszolgáltatások
-
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
its_grandpa
#20046
üzenetére
Beírtam a kódot, és nem működik.
Mivel sok hiba volt benne, és azokat javítottam, valószínű valamit nem jól csináltam.
Arra viszont még nem jöttem rá mit.kód jelenleg:
#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*/
//int gombPin = 4; /*valtozo a gomb pin -nek*/
int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
int period = 1000; /*ennyi idot var a futtatashoz*/
unsigned long time_now = 0;
const int ledPin = 6; /*LED pin*/
const byte interruptPin = 4;
volatile int gombNyomas = 0 ; /*valtozo a gomb nyomas szamlalasara*/
uint32_t lastms= 0;
void gombotnyom(){
gombNyomas ++; /* növeljük 1-el a gombnyomások számát */
}
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 1:
mindenRajtaVan();
break;
case 2:
homeroVanRajta();
break;
case 3:
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 > 10000) /* eltelt 10 sec ? */
{
lastms = millis();
if (gombNyomas > 0) /* volt valamennyi gombnyomás */
{
megnyomva();
gombNyomas = 0 ; /* nullázzuk a nyomások számát
}
} /* gombnyomások számának olvasás időzítése */
Serial.println(gombNyomas); /* kiírjuk hány gombnyomásnál tartasz */
} /* loop_end */
/*Jöjjön a megnyomva fv.*/
}
}egy hibát már meg is találtam:
volatile int gombNyomas = 1 ;
1-nek kell lenni, mert semmi se fut le induláskor.
Most már mutatja a kijelző, de azonnal kifagy
Új hozzászólás Aktív témák
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- iPhone topik
- Célegyenesben a Yettel TV
- btz: Internet fejlesztés országosan!
- E-book olvasók
- Zsoca1991102: Kábel kereső / ér pár kereső
- Starlink
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Apple asztali gépek
- Monitor hiba topik
- További aktív témák...
- Sony G 24-105 f/4 - Sigma 50mm f/1.4 Art (SONY E)
- Összeszerelésre váró komplett gépezet várja új gazdáját!
- BONTATLAN Új Iphone 17 256GB White -Fe Szín 1év APPLE garancia gyári független Deák AZONNAL Átvehet
- Asus P5a-b Ss7 dobozos alaplap / K6-2+ 500mhz / Voodoo 3 /Awe 64 / Big Box Game
- Eladó 82 colos 4K HDR Samsung TV
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8400F / RTX 3070Ti / 32GB DDR5 / 1TB SSD!
- 365 NAPRA RÉSZLETRE BANKMNETES KAMATMENTES , GAMER PC ,LAPTOPOK , GAMER SZÉKEK , GAMER MONITOROK
- Targus DOCK423A - USB-C Dual HDMI 4K HUB - 2 x HDMI (120Hz)
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- Számlás!Windows 10 Pro 11 Pro,Windows 10 Home 11 Home, Office 2016,2019,2021 ,Vírusirtok,Mac
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
ekkold

