Hirdetés
- Amazfit Bip 6 - jót olcsón
- Íme az új Android Auto!
- Szívós, szép és kitartó az új OnePlus óra
- Megvásárolható a Vivo X300 és X300 Pro Magyarországon, íme a hivatalos árak
- Google Pixel topik
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Samsung Galaxy Z Flip5 - ami kint, az van bent
- Apple iPhone SE (3. generáció) - szélsebes múltidézés
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Milyen okostelefont vegyek?
- 
			  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 its_grandpa
							
							
								#20046
							
							üzenetéreBeí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
- 
			
			  lanszelot addikt válasz  its_grandpa
							
							
								#20046
							
							üzenetére its_grandpa
							
							
								#20046
							
							üzenetéreKöszönöm szépen. 
 Meg fogom próbálni ezzel is.
 De ez nekem még nehezen érthető.
 Át kell rágnom magam rajta.
 Ha sikerül, megírom, hogy működik e.pinmode és a attachInterrupt - ezeket nem értem. 
 pinmode:pinMode(gombPin, INPUT);
 ezt töröljem ki? de akkor hova megy a high?
 attachInterrupt:
 "meghívjuk az fv.-t" - mi az az fv? /function?//másik már nem volt szerkeszthető mire átolvastam, ezért van külön íva/ 
- 
			
			válasz  its_grandpa
							
							
								#20046
							
							üzenetére its_grandpa
							
							
								#20046
							
							üzenetéreHa kódot illesztesz be, előtte állítsd át a szerkesztőt a "régi szerkesztő"-re, mert akkor olvasható lesz a kód! 
Új hozzászólás Aktív témák
- AMD Catalyst™ driverek topikja
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- PlayStation 5
- Amazfit Bip 6 - jót olcsón
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- AMD Navi Radeon™ RX 9xxx sorozat
- Óra topik
- Íme az új Android Auto!
- Szívós, szép és kitartó az új OnePlus óra
- Megvásárolható a Vivo X300 és X300 Pro Magyarországon, íme a hivatalos árak
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RX 9070 16GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- magyar billentyűzet - 123 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- Honor X7a 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÚJ Lenovo ThinkPad X13 Gen 5 - 13.3" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
 
						 
								 
							 
								 ekkold
 ekkold

