- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
- Kempingezés és sátrazás
- Viber: ingyen telefonálás a mobilodon
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
LOGOUT
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
-
lanszelot
addikt
-
lanszelot
addikt
válasz
lanszelot #20054 üzenetére
frissítés:
void loop() {
if (millis() - lastms > 1000) /* eltelt 10 sec ? */
{
lastms = millis();
if (gombNyomas > 3) /* 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 */
} else {
megnyomva();
Serial.println(gombNyomas); /* kiírjuk hány gombnyomásnál tartasz */
}/* loop_end */
/*Jöjjön a megnyomva fv.*/
}
}már csak a gomb nem működik
atraktam 3-asra, mert 4 -es nem Interrupt pin, de így se működik a gomb -
lanszelot
addikt
válasz
lanszelot #20053 üzenetére
Meg van még egy hiba:
ez a program sehogy se műköik.
A loop-ban nincs ami frissítse az adatokat,
tehát nem történik semmi, ezért van a képernyő kifagyva.
A gomb pin-tt valószínű rosszul raktam be a programba, így gombnyomásra se történik semmi.const byte interruptPin = 4;
D4 -esen van a gomb, és az eredeti//int gombPin = 4;
kiszedtem.
Nem tudom hogyan kell helyesen.Valahogy frissíteni kell a képernyőt, és a gombot rendesen bevinni.
Azután lehet működneMost látom, hogy sose futhat rá a switch 2 -es vagy 3-as pontjára, hisz 1 után minden esetben nullázza.
-
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 -
lanszelot
addikt
válasz
its_grandpa #20046 üzenetére
Kö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/
-
lanszelot
addikt
válasz
lanszelot #20043 üzenetére
Ezzel a módszerrel sikerült.
Ma reggel neki ültem, mert tegnap már nagyonm fáradt voltam.
Minden gombnyomásra vált.
Mindenkinek köszönöm szépen a segítséget#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 = 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;
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*/
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*/
}
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(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*/
else {display.drawRoundRect(30, 39, 60, 22, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.setTextSize(2);
display.setCursor(20,42);
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void megnyomva() {
if (gombNyomas == 1) {
gombNyomas++;
} else if (gombNyomas == 2) {
gombNyomas++;
} else if (gombNyomas == 3) {
gombNyomas = 1;
}
}
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() {
/*For the MAX6675 to update, you must delay AT LEAST 250ms between reads!*/
//delay(300);
/*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) {
megnyomva();
}
//time_now = millis();
if(millis() >= time_now + period){
time_now += period;
if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
}
}
Serial.println(gombNyomas);
} -
lanszelot
addikt
válasz
Tomika86 #20042 üzenetére
Aryes mutatta nekem:
uint32_t lastms= 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (millis() - lastms > 1000) {
lastms = millis();
Serial.println(lastms/1000);
}
}ez az időzítő , ebben lévő másodpercenként fut le
ezen kívül van :if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
}tehát a gombnyomást érzékeli, és a változó értéke megváltozik, viszont 1mp múlva hajtja végre ami az első "if" -ben van
delay, de még sem az, hisz a program nem áll meg
-
lanszelot
addikt
válasz
Tomika86 #20039 üzenetére
Leírtam hogy miért nem lehet úgy megoldani.
Nagy hőkülönbségnél nem azonnal mutatja , hanem kell neki pár masodperc, míg a helyes hőfokot mutatja.
Ekkor nem lesz meg a 270 -es delay.
A hőmérő mérései között minimum 270 ezredmp kell.
Ott van a leírásában.
Tehát minden körülmény között így kell működnie.
Delay nélkül hogy ne kérje le addig a program?
Lehet az is hogy hogy csinálok egy stoppert, és minden 300-al osztható egesz számnál futtatja csak a lekérést.
Ekkor nem áll a program, tehát a gomb fog működni, de eszi a memóriát.
És ez jobb mint amit fent írtak, mert itt tuti nem fog addig lekerni. -
lanszelot
addikt
válasz
bagarol #20036 üzenetére
oh, azt nem vettem észre
megcsináltam, egyáltalán nem jó
a képernyő folyamatos loop-ban van, és nem lehet kihozni belőle
hiába a változó értékeJanos250
ez azért nem jó, mert ha szobahőmérségletről berakom a fagyasztóba, akkor nem lesz 300-as delay és nem fog mérni, újra kell indítani
olyan megoldás kell ahol minimum 270-et minden esetben késleltet a lekérés
az pedig a delay vagy ha berakok egy relét az áramkörbe -
lanszelot
addikt
válasz
bagarol #20034 üzenetére
a program a gomb működését nézi
Azt mondtátok vegyek ki mindent, kivettem.
Csak mindig másolgatnom kellett a kódot ezért akartam, hogy lefusson egy function egyszer.
De már megtaláltam a hibát, a delay az.
A hőmérőnek viszont minimum 270-es delay kell, amúgy nem mutat semmit.
ezért raktam 300-ra, így már kevés a nem vett gombnyomás
Amit nem értek nem tudom megcsinálni. Kérdeztelek fentebb, hogy mivel legyen párhuzamosan kötve a kondenzátor. Nem kaptam választ. Így azt nem tudtam kipróbálni.ReFleXx:
igen, tökéletesen működik a progi
minden gombnyomás megvan.
ellenállás nélkül, és ellenállással is -
lanszelot
addikt
válasz
ReFleXx #20028 üzenetére
van itthon multimeterem
A megosztott progiban van egy nagy hiba, amit már nem javítottam, mert elegem lett és elmentem kicsit sportolni.
A hiba, hogy induláskor nem fut le semmi, csak a serial print
Meg kell nyomni a gombot, hogy legyen valami
Próbáltam a function-t elindítani az elején, de hibát dob /tuti nem úgy kell azért/
Hogy kell egy function-t elindítani, de nem a loop-ban? Mert csak indulásnál kell lefusson.#20025 pontosan, van amikor működik, teljesen random.
Ezért gondoltam a delay -re
van, hogy 5-ből 1szer működik, de van hogy 2-ből 1szerez alapján van a gomb
ugyanez a gomb, ugyanez az ellenállás, ugyanez a bekötés működik digispak -al, ott a videó a #19986 -ban
Ezért gondolom, hogy a program lesz a gond.Tomika86: azért raktam function-ba, hogy ne legyen 4 az érték
-
lanszelot
addikt
Azt nem értem hogy ha sok kis kapcsolásnak érzékeli, akkor miért nem vált 1-et se. Hiába nyomkodom.
Erre írtam hogy nem a kapcsoló lesz a gond.Pl delay közben nyomom a gombot. Nem tudom hogy pontosan hogy futnak a programok. Így nem tudom nem az okoz e gondot.
De a delay kell a max6675 -nek. -
lanszelot
addikt
válasz
lanszelot #20003 üzenetére
A programmal lesz gond, nem a kapcsolóval, ez tuti.
Jelen állapotában, ha be van kötve a kapcsoló, akkor indulásnál, vagy amikor bedugom a kapcsolót, akkor kifagy
#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 = 4; /*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 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*/
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*/
}
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(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*/
else {display.drawRoundRect(30, 39, 60, 22, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.setTextSize(2);
display.setCursor(20,42);
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void megnyomva() {
if (gombNyomas == 1) {
mindenRajtaVan();
gombNyomas++;
} else if (gombNyomas == 2) {
homeroVanRajta();
gombNyomas++;
} else if (gombNyomas == 3) {
gazVanRajta();
gombNyomas = 1;
}
}
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() {
/*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) {
megnyomva();
}
Serial.println(gombNyomas);
}Egyenlőre feladtam, kiszellőztetem a fejem.
-
lanszelot
addikt
válasz
bagarol #20007 üzenetére
De hát a közelebb lévő lábakat zárja, úgy van bekötve.
gnd -> R -> kék ---- ez alapból zárva van, és gombnyomásra zárva is marad
5V -> piros ---- ezt zárja a gomb össze a kékkelNem így kell?
ReFleXx - sajnos ezt nem értem, kezdő vagyok nagyon
barna fekete fekete piros barna - 10k
ha fordítva van akkor - 120
képen látszik, de nem tudom eldönteni melyik a kezdő szín
sztem 10kvalami nem ok ezzel így
hibák:
5-ös pin , ha ezen van a gomb a gáz érzékelő nem mér
ezért át raktam 4-es pin-re
így a gáz érzékelő mér, de a gomb így se működik jól.
random váltogat, amikor épp kedve van, ha nyomkodom a gombot, és van hogy 1 nyomást 2-nek vesz.
tehát a változó értékét nem növeli a gomb nyomás, csak néha, és van hogy 2-vel növeli meg az értéket
tuti ezzel lesz gond:else if (gombNyomas > 3) {
gombNyomas = 1;
}
mert van 4-es érték , ha Serial Monitoron nézem a változó értékét -
lanszelot
addikt
válasz
ReFleXx #20004 üzenetére
félre értettél, ha benyomom a gombot, akkor nem érzékel.
de valami gond lesz a programmal azért:
mivel ha be van kötve úgy ahogy a képen, akkor
avrdude.exe: stk500_recv(): programmer is not responding
avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0xeehibával nem tudok feltölteni a nano-ra semmit
ha lehúzom a kéket, akkor megszűnik a hiba
tehát vagy a bekötésem nem jó, vagy a program.
és ezért nem reagál a gombnyomásra.Az normális, hogy ha le van húzva pin5, akkor változik a "gombNyomas " nevű változó értéke, aminek pin5 inputnál kellene változni?
-
-
lanszelot
addikt
Hmmm, ez a baj. Nem tudtam a scope -ot.
Nem tudtam, hogy a loop -ból oda ki tud nyúlni.gombbal van most gond.
ha kikötöm, akkor is össze vissza nyomkodja magát. Azaz a gombnyomas valtozo értéke változik valamiért.#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*/
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*/
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
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);
display.display(); /*to shows or update your TEXT*/
}
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*/
display.display(); /*to shows or update your TEXT*/
}
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*/
}
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() {
/*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++;
}
Serial.println(gombNyomas);
if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
} else if (gombNyomas > 3) {
gombNyomas = 1;
}
}gombnyomas értéke:
MAX6675 test
1
2
2
2
3
3
4
2
2
3
4
1
2
2pedig nincs semmi az 5-ös pin-en.
Lehúztam.Amúgy hogyan kell a gombot helyesen bekötni?
Ahogy én gondoltam: negativ -> gomb -> 5-ös pin
Pozitív nélkül
Vagy nem földelni kell gombnyomáskor az 5-ös pint, hanem 3V vagy 5V-t adni neki gombnyomáskor? -
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 -
lanszelot
addikt
-
lanszelot
addikt
válasz
lanszelot #19848 üzenetére
Hello,
Össze raktam a gáz érzékelőt és a hőmérőt.
Jelenleg mind a kettő a kis kijelzőn külön sorban mutatja az értéket.
Gondoltam ha tennék be egy gombot hogy vállthassak a
- ket értek együtt
- csak hőmérő értéke
- csak gáz érzékelő értéke
Között.
Function -ba kell raknom a kijelző megjelenítéseket és gomb nyomásra más más function -t futtassak?
Vagy hogy szokás megoldani? -
lanszelot
addikt
Már nem úgy müködik....hmmm
Ez fura. Pihent kicsit és mindegy hogy dugom, ugyanúgy működik.
A digispark-ba a vezetékeket, a pc-be a digispark-ot
Viszont vmi kondenzátor vagy valami megtartja az onboard led-et pár másodpercig kék vezeték lehúzás után, ha alapból világít az onboard led.De a lényeget megtudtam, hogy melyik melyik pin a kódban.
Köszönöm szépen a segítségetVégre jöhet a project amit kinéztem rá
-
lanszelot
addikt
"próbálom értelmezni," - ezért raktam be a linket, ahol ott a bekötési rajz
amúgy a piros vezeték: gomb és pozitív 5V boardról /ami fehér a pozitív, mert a pirost nem bírtam oda dugni, hogy ne ugorjon ki/ amikor a board-ot mutatom ott látszik a fehér hova van dugvaNem csinálhatok zárlatot, mert ahogy írtam, ha lehúzom a board-ot usb-ről, és PB4 -be dugva dugom vissza, akkor alapból nem világít, csak ha megnyomom a gombot akkor világít, ebben az esetben ha átdugom PB3-ra, akkor a bread board led világít folyamatosan, és gomb nyomásra elalszik.
Meg próbálom az asszonyt rávenni csináljunk új videót, hogy látsd -
lanszelot
addikt
Hello,
Volt egy kis időm, és a te módszereddel sikerült életet lehelni beleKét kérdésem lenne:
- Arduino progi : File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
Mert kell ennek a Digispark-nak, és a Nano -nak is kell.
Állandóan be kell másolgatnom amit épp rádugok.- ezzel a progival próbálgatom megtudjam melyik pin micsoda
/progin változtattam: led pin 1 , button pin 2/const int buttonPin = 2;
const int ledPin = 1;
Nekem a button - arduino vezetéken van egy led
Ha PB3 -ba dugom akkor a led-emet kontrollálom a gombbal
Ha PB4-be dugom az onboard led -et kontrollálom a gombbal
video róla bocsánata a minőségért, csak 2 kezem van
Hogy is van ez? Miért vált led-et, a program ugyanaz?
Az se mindegy melyikre dugom, mikor bedudom a Digisparkot usb-re.
Amelyik bedugáskor be van kötve az alapból kikapcsolt, és gomb nyomásra bekapcsol.
A másik fordítva, ahogy a videón is látszik.
De ha a másikkal dugom be először, akkor az lesz alapból kikapcsolt. -
lanszelot
addikt
Félre értettél.
Egyáltalán nem mondtam, hogy úgy kell ahogy a gyártó mondja.
Úgy néz ki én vagyok gyenge elméjű, és nem akartam marhaságokat írni ide.Amit szerettem volna:
Amikor megvettem a gyártó ígért: leírást, installalási útmutatót, példa programot, és ha bármi gond lenne segítséget.
Ezt a gyártó garantálja. És állítja hogy az úgy jó ahogy ő írja.
Meg is osztottam amit küldött pdf-et.
Amit sikerült valamennyire kibogoznom.A gond a pdf-el a sorrend.
Gyártó pdf szerinti sorrend:
+ installald az Arduino ide-t
+ Valaszd ki a board -odat
+ Válaszd ki a portot
+ Linkeld be a jsont
+ Installald a board managerben
+Installald a windows driver -tTehát a leges legvégén kell a drivert installálni.
Ez így szerintetek rendben van ez a sorrend?Mert így én nem tudtam felrakni.
Ezért írtam nekik, hogy hol rontottam el.
Még videót is küldtem róla, meg képeket.
Azt írták, hogy én nem tudok telepíteni és keressek valakit aki tud.
[kép]
Ha ennyire hülye vagyok akkor nem akartam itt marhaságokat írni.
Szerettem volna saját hibámat kizárni.
Ezért olvasgatok utána, de nem találom hol hibáztam. -
lanszelot
addikt
ami még kimaradt:
board lista: [kép]
/első az uno miatt ami nekem nincs, de nem is értem minek az uno
másik board lista: [kép]
hiába van kiválasztva, nincs com port
com lista: [kép]
megvárom mit jelez vissza a gyártó.
hétvégéig úgy se nagyon van időm
pénteken majd neki ugrok, hogy a te két félédet is megpróbáljam
újra lett indítva a gép, tehát az se lehet hiba -
lanszelot
addikt
A gyártói leírást. Belinkeltem a pdf-et. Ott van minden lépés, bár össze vissza írták. Abban vannak a linkek is.
1.8.18
Még nem tudtam azokat próbálni, mert dolgozom. Ezért irtam, hogy pénteken fogom tudni próbálni, mert akkor már ünnep lesz és lesz időm
Hétközben nem nagyon van időm, max 10-15 perc. -
lanszelot
addikt
Más a driver
Uno-t kell kiválasztani
Bár nekem egyáltalán nem működik.
Eszközkezelőben ott van , de nincs com portja.
Illetve az Arduino -ban hibát dob:
"warning: non trusted contribution, skipping script execution (c:\users\lanszelot\appdata\local\arduino15\packages\digistump\tools\micronucleus\2.0a4\post_install.bat)"
Megpróbáltam manuálisan installálni arról a helyről, de hibát dob úgy is. -
lanszelot
addikt
Hello,
A gyártó küldött egy használati útmutatót.
Itt másképpen telepítik Arduino-ba.
Megosztom, hátha érdekel -
lanszelot
addikt
Hello,
Ezeknek a pinout-oknak van valahol valami leírása kezdőnek?
Mert nem igazán vágom mi micsoda
[kép]
Az 5V és a gnd -t értem, a többit nem.
Usb az otg, és ki lehet valahogy kapcsolni, hogy használható pin-ek legyenek. Ez még nem érdekel, mert az alapokat se értem.
Vin, PB0-PB5-ig.
Egyedül a resetet értem. Költök rá egy gombot gnd-vel és gondolom ugyanaz mint a nano reset gombja, csak itt nincs a board-on, ezért így oldották meg.
A többiről fogalmam sincs. És amit találok leírást azok nem kezdőknek való. -
lanszelot
addikt
-
lanszelot
addikt
Köszönöm szépen
igen az Attiny85 volt az.
Közben megtaláltam a srác angol nyelvű csatornáját
jó kis indiai akcentus, de követhető.
Újra írható a Attiny85?
Vagy csak 1szer írható?
Veszek párat, és megpróbálom lekövetni amit csinál.
Hátha sikerül rádobni a gáz érzékelőt -
lanszelot
addikt
Nem, így értettem.
A kép: beirtam Google -ba "ic" első képet beraktam
Mint írtam a szakkörön annyit mondtak: ic-t ugyanúgy kell programozni mint az arduinot, a képen lévő ic -hez hasonlót rajzolt fel a táblára.
Többet nem tudok.
Amikor utána kerestem a videókon arduino-val ilyen alaku ic-ket programoznak.
Mivel indiai nyelven beszél egy szót se értek. És nem mutogatja el lépésenként.
Csak az arduino-t 8 vagy jóval több lábú ic -vel helyettesíti.
Bread bordba szúrja, össze kötögeti, és utana csak azt mutatja kész.
Tehát semmit.Fogalmam sincs milyen ic . Ezért kérdeztem itt , mert nem értek hozzá és azt se tudom hogy keressem
"From arduino to ic" ez nem segített.
Gondoltam van nyák lapom, és ic-vel össze dobnám a gáz érzékelőt, hogy olyat is lássak, hogy ic. Lehetne öröm bodottá. -
-
lanszelot
addikt
válasz
DigitXT #19849 üzenetére
Nagyon szépen köszönöm a választ mindenkinek.
Mint írtam a kérdés nem a programra irányult.
Tehát, ha jól értem, a program futása nem soronként történik, hanem több szálon, tehát akár több sor is tud futni egy időben. És itt van amit rosszul gondoltam. Mert ezt sehol se írták le./ahol én néztem: c++ alapok, arduino alapok/ -
lanszelot
addikt
válasz
DigitXT #19845 üzenetére
Először is köszönöm szépen a választ.
Mint írtam, már #19815 óta nem a programról van szó, hanem csak általános programozási kérdéseket tettem fel.
Valószínű nem jól fogalmazok, ezért elnézést kérek.Itt az a program az érzékelőhöz aminél a négyzet nem működött. /de nem erről kérdeztem/
#include <Adafruit_SSD1306.h>
#include <splash.h>
uint32_t lastms= 0;
bool blink = true;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
Serial.begin(9600);
// 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);
int isgas = digitalRead(2);
String gas;
delay(1000);
display.clearDisplay(); //this line to clear previous logo
display.setTextSize(2); /*text size 3*/
display.setCursor(3,0); // ez tartja egy helyben a szöveget
display.setTextColor(WHITE); //without this no display
display.print("Gasmeter");
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 ");
if (sensorValue < 90) {
gas = "No Gas";
}else{
gas = " Gas";
if (millis() - lastms > 4000) {
lastms = millis();
if (blink)
display.drawRoundRect(80, 47, 40, 15, 2, WHITE);
else
display.drawRoundRect(80, 47, 40, 15, 2, BLACK);
blink = !blink;
}
}
display.print(gas);
display.display(); //to shows or update your TEXT
}
pont ezért nem szúrtam be, mert lehetetlen ide berakni
Mint láthatod, nincs benne semmi az "if" -en kívül -
lanszelot
addikt
De milyen programot látok?
Bármelyik program futásáról kérdeztem.
Hogyan fut le egy program?
Ez volt a kérdés.
Írtam hogy hogyan gondolom.
Azt is valószínű hibásan.DigitXT:
Az a program amit bemásoltam az annyi.
Nincs" ==" nincs semmi. Nincs vizsgálat.
Tanulok, és par soros programokat próbálok írni.
Vettem egy készletet, van benne minden.
Kiveszek valamit a készletből és megpróbálom működésre bírni.
Van hozzá program a dvd-n, de azzal mit tanulnék, ha megírt programokat töltögetnék fel a leírás szerint?Az előbb kivettem egy gáz érzékelőt:
Érzékelő egy adatot küld.
Ezt kiiratom, és ennyi.
Semmit se csinálok vele, nincs semmi más.
Oled programja ott van a linkben, gáz érzékelő pedig x pin -rol bejön.
A gaz érzékelőnek még library se kell.
Semmi sincs a programban.
If-et azért raktam be hogy gyakoroljam az 'if' et.
Ennyi. Nincs hova rakni a serial print -et, mert van az 'if' és nincs más.
Nincs program. Csak kezdő vagyok. A legelején tartok.
De azt a programot már megoldották.
2 megoldás is jött.
Utána irtam, hogy nem értem az egyiket.
Majd azt hittem jól gondolom a program futásának menetét az arduino -n, és emiatt rosszul értelmeztem a programot.
Rájöttem hogy rosszul értelmezem.
Leírtam hogy képzelem el a program futását.
De oda írtam valószínű rosszul kepzelem.
Ezért kérdeztem, hogyan fut le egy program?
Most már az egymagos két magost sem értem.
Valószínű mivel az alap futást sem tudom. -
lanszelot
addikt
feketét fehéret felcserélve is fekete van hosszan, tehát törli a kijelzőt az a gond.
Nincs bug.Valami alap dologban szerintem el vagyok tájolódva.
Nem úgy működik a program, hogy egy sor lefut, majd csak utána a következő, es csak utána a következő..stb fentről le.... ballról jobbra?
Kivéve function, mert ott oda ugratjuk, és végeztével vissza ugrik.Tehát bemegy "if"-be ott tru/false utat követ.
Bent "if" -ben, ha van delay , akkor addig ami meg van ott adva megáll és csak a késleltetési idő leteltével folytatja?
Ha igen, akkor hogy lehet, hogy folyik a delay, és a loop elejére ugrik?
Ha nem, akkor hogy működik?#19817 erre a linkre utaltam
-
lanszelot
addikt
Nem tűnik el. Van fehér keret. Csak rövid ideig.
Ha törölné a fekete tovább lenne.
display.drawRoundRect -> ez újra rajzolja és ott van a fehér és fekete előtt is.
Nem értem mi az hogy nem rajzolja minden ciklusban.
Kijelzőt a loop elején törli. A megosztott oled linkemben is ott van.
Majd ha este haza érek megnézem, ha felcserélem akkor a fehér lesz e hosszabb ideig , vagy akkor is a fekete.Mielőtt kötekedésnek venné bárki, nagyon kezdő vagyok, és próbálom megérteni. Ezért azt írom le amit látok. Lehet rosszul írom. Csak megérteni szeretném.
-
lanszelot
addikt
válasz
bagarol #19818 üzenetére
A tiéd azért jobb, mert jól működik.
A másik vmiért bug -os. Sztem a millis() function működése okozhatja.Igazából mivel a kijelző nem színes, így a fekete valójában kikapcsolja. Mivel pont ugyanazokat a pixeleket irom felül, ezért mind a 2 esetben ki be kapcsolgatom a pixeleket.
-
lanszelot
addikt
válasz
DigitXT #19816 üzenetére
Ez a kijelző.
Nem frissítési turpisság.
És nem írja felül semmi. Ha egymásra iratok vmit, mind a kettő ott van egymáson. Nem takarja ki.
Az érték folyamatosan változik.
A fehér a loop futtatási idejét tartja, a fekete a beírt értéket.
Pl 200 nál szinte egyformán váltanak, hisz 0.2s. 8000 nél pedig a fekete 8s míg a fehér ugyanannyi mint volt 200 nál. De írhatok be bármilyen számot.
Biztos hogy vmilyen bug, hogy páratlan futásokkor miért nullázódik. Valami a lastms alap ertéke miatt lesz. Csak én nagyon kezdő vagyok. Nem tudom miért. -
lanszelot
addikt
Mindenkinek nagyon szépen köszönöm
(millis() - lastms > 200)
ezzel a villogás idejét szabályozom, ha jól értem
ha 200 helyett 4000 -et írok, akkor lassabban villog.
Fura megoldás, mert így csak a feketét késlelteti, tehát a fehér ugyanúgy rövid ideig vam.
Így meg olyan mintha nem villogna, ha pl 8000 -et írok.
Tudom, hogy kell átírni delay-el, csak értelmezni próbálom, hogy miért csak a fekete kapja meg a delay időt. Hiszen az mindenképpen lefut ha fehér ha fekete.
Nagyon kezdő vagyok programozásban
Agyalnom kellett mi micsoda.
uint32_t sem ismertem.
De legalább utána kellett járnom, és tanulhattam -
lanszelot
addikt
válasz
bagarol #19809 üzenetére
Hello,
A program az ennyi.
Ha a szenzor érték 90 alatt van akkor írja ki nincs gáz, ha felette akkor villogjon a négyszög
Utána még annyi van hogy azt is kiírja, hogy gáz, bele a négyszögbe
De az már az "if" -en kívül van, az nem szól beledisplay.print(gas);
Amit írtál az sehogy se jó: - "a" nincs létrehozva.
- így nincs értéke, se tipusa.
- ezért "if" -en belül nem igaz/hamis lesz "a", így "if" nem működik
- te ha létrehozom "a" -t akkor se müködik, mivel minden esetben ugyanaz az ág fog lefutni a loop miatt. Attól függ igaz vagy hamis "a" -t hozok létre.kérdéseim:
- Az enyém miért nem működik? loop indul, kirajzoja a fehér négyzetet, vár, kirajzolja a fekete négyzetet, vár, loop újra indul. vagy nem ezt írtam?
- "a^=1;" mi az a ficak, és mit csinál?
- -
lanszelot
addikt
válasz
lanszelot #19750 üzenetére
Hello,
Akkor ebben senki sem tud segíteni?
Nem lehet megoldani?Ez nem működik /loop ban van/:
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
display.drawRoundRect(80, 47, 40, 15, 2, WHITE);
delay(200);
display.drawRoundRect(80, 47, 40, 15, 2, BLACK);
delay(200);} -
lanszelot
addikt
Hello,
Hogy tudom azt megoldani, hogy egy szöveg körül egy négyszög villogjon. Mintha villogó kerete lenne?
A négyszöget köré tudom rajzolni, de nem tudom villogtatni.
A szöveg és a négyszög is a "void loop" ban van -
lanszelot
addikt
Először is köszönöm szépen a választ.
Én nem találom egyikben sem a választ.
Mind a 3nál csak annyit fog mutatni, hogy mennyi ppm.
De mit mér azt nem tudni.
Az volt a kérdésem, hogy hogy lehet váltani a mérendő gázok között?
Legutolsó linkben is ott van, hogy több féle gáz mérésére képes.
De ennyi. Azt nem látom, hogy honnan tudni épp mit mér. -
lanszelot
addikt
Hello,
Vettem egy MQ-135 GAS SENSOR -t.
Az volt írva, hogy teljes dokumentációt adnak hozzá.
Hát egy nagy semmit adtak hozzá.
"They are used in air quality control equipments for buildings/offices, are suitable for detecting of NH3,NOx, alcohol, Benzene, smoke,CO2 ,etc."
Ezt tudja. De hogy választom ki mit mérek?
Vagy hogy a ppm érték mit takar?
Mert ha pl alkohol szintet akarok mérni, és co2 -t mér a lehelletben, akkor azt honnan fogom tudni, hogy most ivott, vagy csak co2-t mért ?
Nem találok arduino-hoz semmit hozzá.
Tudna valaki segíteni? -
lanszelot
addikt
válasz
Janos250 #19600 üzenetére
Nagyon szépen köszönöm mindenkinek a választ.
Igen, pont így gondolkodtam, ahogy írtad.
Ezért is írtam a solid state relay -t a kérdésbe.De úgy látom felejtős a project.
Jelenleg manuálisan szabályzom.
De szakkörön azt mondták: huuuu de olcsón meg lehet építeni a szabalyzót a nano-hoz. Vakartam is a fejem, hogy nem így emlékszem, mondom tuti valamit benéztem.
De nem. Árban mindegy hogy triak, vagy ssr mind £20 felé megy, és én max £5 szántam rá.
Mivel 1szer fogom használni az életben és bekerül a szekrény aljára.Van egy rakat cuccom az arduino -hoz, majd azokkal szórakozom
azokra nem kell költeni.
-
lanszelot
addikt
Hello,
Van egy heating pad - om smd alkatrészekhez.
240V ről közvetlen üzemel. 270 fokra melegszik, semmi sem állíthato rajta.
Nano -val csináltam egy hőmérőt.
[kép]
Ugyanezzel a nanoval szeretném vezérelni a heat pad -ot, hogy kb 140 fokra melegedjen, utolsó 20 fokot lassabban melegítse, tartsa ott egy ideig /forrasztás/, majd hagyja lehülni.
Solid state relay -t javasoltak.
De elektromossaghoz alig értek. És Arduino -ban is nagyon kezdő vagyok.
Valakinek volna valami ötlete/tanácsa, hogyan tudnám megvalósítani? -
lanszelot
addikt
igen, #19544 így telepítettem.
weiss:
igen, de akkor a blink se megy fel rá
ATmega328PB -t kell használnom semmi mással nem működik.ennél, ha loop ba rakom a kiírást akkor folyamatosan odébb gyalogoltatja , és egyidő után kimegy a kijelzőből.
hogyan tudom állandó helyre kiíratni?jelenleg itt tartok, de
- gyalogol a felirat,
- és nem kap értéket a hőmérőtől:#include <Adafruit_SSD1306.h>
#include <splash.h>
#include <max6675.h>
//Outputs from 6675 to arduino uno pins.
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
Serial.begin(9600);
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() {
// For the MAX6675 to update, you must delay AT LEAST 250ms between reads!
delay(1000);
display.clearDisplay(); //this line to clear previous logo
display.setTextColor(WHITE); //without this no display
display.print("C = ");
display.print(thermocouple.readCelsius());//your TEXT here
display.display(); //to shows or update your TEXT
}
-
lanszelot
addikt
válasz
bagarol #19549 üzenetére
Hello,
Ezt nem értem.
Ma kezdtem.
Csak próbálom megérteni a dolgot.
C++ nagyon az alapok vannak csak meg.
/változó, tömb, loop, függvény, stb. legalapabb dolgok/
Fogalmam sincs hogy tudok egy eszközt működésre bírni.
Most próbálok rájönni.Találtam ezt, és tökéletesen működik.
Tehát a kódokkal van a gond, nem a hardwerrel.Az eredeti kérdésem még mindig ez lenne.
Itt van az ino file, amit le lehet tölteni.
Mindenem meg van hozzá, csak hibás a program. -
lanszelot
addikt
----bocsi, nem engedi programkód blokba ------
Ellenőrzésnél dobja, meg se próbáltam feltölteni, felesleges.Arduino: 1.8.18 (Windows 10), Board: "ATmega328PB"
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_spi_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = data;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:186:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_com_arduino_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:220:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:227:2: error: 'SPSR' undeclared (first use in this function); did you mean 'SPCR'?
SPSR = (1 << SPI2X); /* double speed, issue 89 */
^~~~
SPCR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_arduino_st7920_hw_spi_shift_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = val;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:104:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_com_arduino_st7920_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:204:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
exit status 1
Error compiling for board ATmega328PB.This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences. -
lanszelot
addikt
Hello,
Ez a project se működik.
Rengeteg hibát dob... -
lanszelot
addikt
Hello,
Végre működik a nano
Már programozgattam is kicsit
Így vissza térnék az eredeti kérdésemhez.
Itt van az ino file, amit le lehet tölteni.
De kellenek hozzá a Library file-ok.
Leszedtem /ráütésre/, majd töröltem az include -okat, és Skatch -> Include Library hozzá adtam , hogy tuti legyen az elérés.
Persze hibát dob. Gondolom nem azt szedtem le amit kellett volna."C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp: In member function 'void Adafruit_SH1106::display()':
C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp:551:28: error: 'TWBR' was not declared in this scope
uint8_t twbrbackup = TWBR;
^~~~
C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp:551:28: note: suggested alternative: 'TWBR0'
uint8_t twbrbackup = TWBR;
^~~~
TWBR0
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
Multiple libraries were found for "Adafruit_Sensor.h"
Used: C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_Sensor-1.1.7
Not used: C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_Unified_Sensor
exit status 1
Error compiling for board ATmega328PB."Honnan tudom azokat a file-okat leszedni, hogy működjön?
Amivel épp baja van azt innen szedtem /első post alatt ott a zip file, kicsomagolva másoltam a Library-ba/
-
-
lanszelot
addikt
Hello,
Kaptam egy Arduino Uno-t ahol dolgozom, az egyik tanártól.
Ez a leírás szeritn csináltam. Pont úgy.
Azzal is hibát dob:
Arduino: 1.8.18 (Windows 10), Board: "Arduino Nano, ATmega328P"
Error while burning bootloader.
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.Avrdudess:
You have the latest version :)
>>>: avrdude -c arduinoisp -p m8
WARNING: Unable to detect MCU
avrdude.exe: Error: Could not find USBtiny device (0x2341/0x49)
avrdude.exe: opening programmer "arduinoisp" on port "usb" failed
avrdude.exe done. Thank you.Bár még mindig nem tudom hogy kell használni.
#19517weiss: szerintem félre értetted, blink és hasonló programról írtam, nem bootloader-ről
Amúgy én vagyok a programozó. -
lanszelot
addikt
Nincs olyan lehetőség, hogy Arduino as ISP.
Nem ismeri fel se Arduino, se Arduino Programmer ISP, se a másik
se Arduino Programmer ISP -n /2 van belőle/
Nem írtad hogy kell összekötni. #19512 ICSP alapján kötöttem összeLehúztam mindent nano-ról,
Nano-t usb kábellel bedugtam pc-be,
AVRDUDESS 2.14 portable elindítottam,
Programmer - Arduino válsztottam
Detect - Unable to detectvargalex: vásárlás leírásban ott volt, hogy nincs bootloader, csak nem tudtam az mit jelent
gondoltam, úgy is saját kódot akarok rárakni. -
lanszelot
addikt
-
lanszelot
addikt
Rossz bootloader írást nézel. Ezért rossz képet nézel.
A te képed nem ICSP pin-en keresztül van.
Írtam hogy a normál a nano-al nem működik.
Error kód alapján megkerestem miért.
Linket is dobtam ahol leírják miért.
ICSP pin-en keresztül kell frissitenem, ezért a kép már az alapján készült.
De igen, a normált is próbáltam, fentebb ott az error kód.
#19487 -es írásom -
lanszelot
addikt
Hello,
Igen, feltöltöttem.
Csupasz board -ra, kábelek és nano nélkül.
És hiba nélkül rá is ment.
Már amennyire érték hozzá. Gondolom hogy rajta van, nem láttam mit kellene látnom. Nagyon gyorsan felment Mega -ra.
De vártam még 1 percet hátha csinál vmit. De nem, és hibát se írt mikor lehúztam.
Szerintem vagy hibás a nano.
Vagy a Mega nem tudja rárakni a bootloader -t.
Már nem veszek több Arduino-t. -
lanszelot
addikt
Elnézést kerek, ha kimaradt volna valami.
Azt hittem mindent megválaszoltam .
Dobtam video linket hogy csináltam, mind a 2 alkalommal.
És azt is mit írtak, hogy normál módon miért nem lehet bootloader -t rakni rá.
Amiatt ICSP pin-eken keresztül kell csinálni.
Ott az a videó, hogy hogy kell, azt követtem.
Ha ő kihagyott vmit, akkor én is.
Megán az első miatt alapból fent van az ISP, mivel nem mutatta sehol hogy hogy kell törölni.
Nem is íratta felül, tehát gondolom rajta van.
Nem értek hozzá. Csak gondolom
Az ICSP pin -es bootloader rakásról csak azt az egy videót találtam. Sehol semmi mást.
Tehát csak azt követtem.
És belinkeltem hogy mi az error kód. /Mivel az oldal amit írtál már nem létezik/
Nem tudom mit tudnék még írni, mivel nem értek hozzá. -
lanszelot
addikt
Most ez alapján próbáltam.
De itt is hibát dob.
"
Arduino: 1.8.18 (Windows 10), Board: "Arduino Nano, ATmega328P"
Sketch uses 4354 bytes (14%) of program storage space. Maximum is 30720 bytes.
Global variables use 482 bytes (23%) of dynamic memory, leaving 1566 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x2f
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x2f
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Problem uploading to board. See https://support.arduino.cc/hc/en-us/sections/360003198300 for suggestions.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences." -
lanszelot
addikt
Hello,
Természetesen hibát dobott:
"
Arduino: 1.8.18 (Windows 10), Board: "Arduino Nano, ATmega328P"
Error while burning bootloader.
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences."Ezt írták megoldásnak, de fogalmam sincs ez mit jelent: /nem az angol, hanem programozásilag/
Many of the Chinese Nano, in addition to using CH340G chips as their interface, do not come with the Arduino boot-loader installed. These need to be loaded via the ICSP pins before they can be programmed via the IDE. -
lanszelot
addikt
Nincs rajta bootloader azt tudom
Csak azt nem mit jelent.Megosztottam a hibát. A mostanit azért nem szúrtam be mert rengeteg sor hiba. Nem csak pár sor mint eddig.
Nincs pont olyan nevű file, és ahogy át írtam az biztos rossz.
Nem értek hozzá. Próbáltam valamit kezdeni vele. -
lanszelot
addikt
Most meg ez nem tetszik neki "Adafruit_SH110X.h"
Hibákat dob folyamatosan.
Feladtam. Nem értek hozzá.Még a blink -et se tudom kicsiholni. Ez kuka.
Amúgy a Nano- mon nekem alapból 2 piros led világít. Nem tudom nem amiatt nem megy a blink. Power és TX .gya/352:
De én egyáltalán nem értek hozzá. Csak kedv csinálónak gondoltam, hogy de jó lesz...
Hát meghozta a kedvem: hogy darabokra törjem
Új hozzászólás Aktív témák
Hirdetés
- Csere-Beszámítás! Asus Tuf RTX 5070Ti 16GB GDDR7 Videokártya! Bemutató darab!
- Csere-Beszámítás! Sapphire Pure RX 7900XT 20GB Videokártya! Bemutató darab!
- Csere-Beszámítás! PowerColor Red Devil Spectral White RX 9070XT Videokártya! Bemutató Darab!
- InFocus IN3126 Projektor
- PC tápkábelek & UTP patch kábelek
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- ASUS ROG GL552VW - 15.6"FHD IPS - i7 i7-6700HQ - 8GB - 128GB SSD + 1TB HDD - GTX 960 4GB -
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone Intel i9 14900KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! AMD Ryzen 5 2600 6 mag 12 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest