Hirdetés

Új hozzászólás Aktív témák

  • lanszelot

    addikt

    Hello,

    C++ function létrehozással - meghívással gondom van

    mivel még sohase csináltam, csak próbálgatom, de valami nem jó

    #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 gombNyomas = 1; /*valtozo a gomb nyomas szamlalasara*/
    int gombPin = 5; /*valtozo a gomb pin -nek*/
    int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
    byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/

    MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);


    Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);

    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(gombPin, INPUT); /*inicializálja a gomb pin -jet inputnak*/

    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() {
    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*/

    /*For the MAX6675 to update, you must delay AT LEAST 250ms between reads!*/
    delay(500);

    /*read the state of the pushbutton value:*/
    gombAllapot = digitalRead(gombPin);

    /*check if the pushbutton is pressed. If it is, the buttonState is HIGH:*/
    if (gombAllapot == HIGH) {
    gombNyomas++;
    }

    if (gombAllapot > 3) {
    gombNyomas = 1;
    }

    switch(gombAllapot) {
    case 1:
    mindenRajtaVan();
    break;
    case 2:
    homeroVanRajta();
    break;
    case 3:
    gazVanRajta();
    break;
    }

    void mindenRajtaVan() {
    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*/
    else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
    a^=1;
    }
    display.print(gas);
    }

    void homeroVanRajta() {
    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*/
    }

    void gazVanRajta() {
    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(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*/
    else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
    a^=1;
    }
    display.print(gas);
    }

    display.display(); /*to shows or update your TEXT*/

    }

    hiba üzenet:
    C:\Users\robag\Documents\Arduino\gas_homero_gomb_nano\gas_homero_gomb_nano.ino: In function 'void loop()':
    gas_homero_gomb_nano:56:25: error: a function-definition is not allowed here before '{' token
    void mindenRajtaVan() {
    ^
    gas_homero_gomb_nano:88:25: error: a function-definition is not allowed here before '{' token
    void homeroVanRajta() {
    ^
    gas_homero_gomb_nano:106:22: error: a function-definition is not allowed here before '{' token
    void gazVanRajta() {
    ^
    gas_homero_gomb_nano:130:5: error: 'mindenRajtaVan' was not declared in this scope
    mindenRajtaVan();
    ^~~~~~~~~~~~~~
    gas_homero_gomb_nano:133:5: error: 'homeroVanRajta' was not declared in this scope
    homeroVanRajta();
    ^~~~~~~~~~~~~~
    gas_homero_gomb_nano:136:5: error: 'gazVanRajta' was not declared in this scope
    gazVanRajta();
    ^~~~~~~~~~~
    Multiple libraries were found for "Wire.h"
    Used: C:\Users\robag\AppData\Local\Arduino15\packages\ATmega328PB-incl-Bootloader\hardware\avr\0.1.0\libraries\Wire
    Not used: C:\Users\robag\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
    Multiple libraries were found for "SPI.h"
    Used: C:\Users\robag\AppData\Local\Arduino15\packages\ATmega328PB-incl-Bootloader\hardware\avr\0.1.0\libraries\SPI
    Not used: C:\Users\robag\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI
    exit status 1
    a function-definition is not allowed here before '{' token

Új hozzászólás Aktív témák