Guten morgen...
Ich bin noch ganz frisch in dieser Sache und habe da mal die frage wie ich einen Sketch der auf dem Uno läuft auf einen Attiny85 bekomme?!
Es soll die Temperatur vom LM35DZ ausgelesen werden und wenn die angegebene Temperatur erreicht wird betätigt der Servo die Lüftungsklappe im Wintergarten.
So weit so gut...
Nun dachte ich mir das ich ja nicht so viel Speicherplatz brauche und ein Attiny85 reicht und zudem noch billiger ist. Also habe ich mir die Datei für den Attiny geladen und den Blinksketch getestet...funzt...
Dann wollte ich den eigentlichen Sketch aufspielen und bekam folgende Fehlermeldung:
Temperatur_auslesen_LM35_ATTINY85.ino: In function 'void setup()':
Temperatur_auslesen_LM35_ATTINY85:15: error: 'Serial' was not declared in this scope
als Fehler wird mir der Befehl "Serial.begin(9600)" angezeigt aber diesen brauche ich doch damit der wert vom Sensor ausgelesen wird oder nicht?
Hab die ganze Nacht vor dem Pc gesessen und Google gequält aber ich stehe im moment echt auf dem Schlauch...
Hier mal mein Code der auf dem Uno läuft:
//Temperaturregelung Wintergarten//
#include <Servo.h>
Servo servo1;
float tempC;
int tempPin = 2; // Temperatursonsor an analog Pin 0 bei Arduino | bei ATTINY85 an pin 2
int ledPin = 0; // LED an Pin 13 bei Arduino | bei ATTINY85 an pin 0
int pos = 0; // Servoposition
// Setup
void setup()
{
Serial.begin(9600); // öffnet den Serialport zur Comunikation mit dem Sensor
pinMode(ledPin, OUTPUT);
servo1.attach(5);
}
void loop()
{
tempC = analogRead(tempPin); // liest den Temperaturpin aus
tempC = (5.0*tempC*100.0)/1024.0;
Serial.println((byte)tempC);
if (tempC >26) // wenn die Temp über 26 C ist leuchtet die led
{
pos = 180; // Servo öffnet
digitalWrite(ledPin, HIGH);
servo1.write(pos);
}
else
{
pos = 0; // Servo schließt
digitalWrite(ledPin, LOW);
servo1.write(pos);
}
delay(1000);
}
würde mich sehr freuen wenn mir hier geholfen wird und bitte... zerlegt mich nicht gleich...ich bin noch ganz frisch
so ziemlich alles, was auf dem 328er geht, kannst Du auch auf dem tiny machen. aber:
viel schwieriger, aufwändiger, sch.-sucherei, ärger, wenige tutorials usw. warum sollte man sich das antun?
zahl einen euro mehr und nimm den atmega8 oder gleich den 328.
das, meiner meinung nach, ärgerlichere daran ist, daß es keinen mega mit weniger beinchen gibt, oft braucht man ja kaum was...
@Admin
Sorry habe das mit dem Code usw eben erst gelesen.
@ Eisbar
da muss ich dir zustimmen und ich bin echt am überlegen ob ich nicht bei dem 328er bleibe worauf mein code ja läuft. Warum ist das kleine Ding so verdammt umständlich?!?
Hab mir extra ein nettes Shield gebastelt um den 85er zu programmieren...
Habe mein Code nochmal überarbeitet und jetzt motzt die IDE über den Servo :0
//Temperaturregelung Wintergarten//
#include <SoftwareSerial.h>
const int rx=3;
const int tx=1;
SoftwareSerial mySerial(rx, tx);
#include <Servo.h>
Servo servo1;
float tempC;
const int tempPin = 2; // Temperatursonsor an analog Pin 0 bei Arduino | bei ATTINY85 an pin 2
const int ledPin = 0; // LED an Pin 13 bei Arduino | bei ATTINY85 an pin 0
int pos = 0; // Servoposition
// Setup
void setup()
{
pinMode(rx,INPUT);
pinMode(tx,OUTPUT);
mySerial.begin(9600); // öffnet den Serialport zur Comunikation mit dem Sensor
pinMode(ledPin, OUTPUT);
servo1.attach(5);
}
void loop()
{
tempC = analogRead(tempPin); // liest den Temperaturpin aus
tempC = (5.0*tempC*100.0)/1024.0;
mySerial.println((byte)tempC);
if (tempC >26) // wenn die Temp über 26 C ist leuchtet die led
{
pos = 180; // Servo öffnet
digitalWrite(ledPin, HIGH); // Led an
servo1.write(pos);
}
else
{
pos = 0; // Servo schließt
digitalWrite(ledPin, LOW); // Led aus
servo1.write(pos);
}
delay(1000);
}
Die Fehlermeldungen lauten nun:
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void __vector_3()':
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:105: error: cannot convert 'volatile uint8_t*' to 'volatile uint16_t*' for argument '2' to 'void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)'
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:151: error: 'TCCR1A' was not declared in this scope
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:152: error: 'TCCR1B' was not declared in this scope
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:159: error: 'TIFR1' was not declared in this scope
D:\Program Files (x86)\Arduino\libraries\Servo\Servo.cpp:160: error: 'TIMSK1' was not declared in this scope
@Eisbaer
kein Problem
das kleine Sch...ding (Attiny85) hat mich die ganze Nacht wachgehalten und da kann ich nicht so einfach aufhören außer er beschreitet eine balistische Flugbahn durch das offene Fenster was aber nicht mehr all zu lange dauert! :0
Ich kann meine IDE nicht auf den Attiny85 umstellen. Daher habe ich es mal auf "Uno" stehen lassen und deinen oben stehenden Sketch kompiliert. Da kam keine Fehlermeldung.
@Gelegenheitsbastler
Moin...
das ist richtig. wenn ich meine auf Uno umstelle ist die Fehlermeldung bei mir auch weg.
@ALL
Hiermit melde ich das der Attiny sich soeben mit dem Pflaster im Hof verbunden hat und ich wie von Eisbaer empfohlen wieder auf nen 328er gehe.
Ich bedanke mich bei euch für eure Tipps und bin mir sicher das ich bald mal wieder eine Frage haben werde
Du könntest den 328er im Arduino fertig machen, rausnehmen und mit Minimalbestückung ohne Arduino-Board laufen lassen. Aber ich denke das weisst du schon längst.
aber wenn ich mir das alles mal so durchrechne...
328er = 3-4,-
platine = 1,-
7805, buchse, kondensator, usw = 2,-
dann kann ich mir auch für 6,60 ein aruino nano im land des lächelns bestellen :0
nein, einen mit 8MHz hat er ja eingebaut. nur wenn Du 16MHz willst, brauchst Du einen externen quarz.
aber Du hast schon recht. alles selber zu machen, statt gleich einen fertigen zu nehmen, hat ungefähr den gleichen sinn, wie es unbedingt auf einen tiny kriegen zu wollen.
kann man, muß man aber nicht...
das mit dem 8MHz und dem Quarz wusste ich nicht...Danke!
ich denke das ich nächste woche mal 2 Nano`s bestelle. einen brauche ich ja noch für meine Qlocktwo die ich noch im Bau habe und den anderen zum testen
aber es ist echt schon hart das man für den Preis einen fertigen Arduino bekommt...
Die Aktion mit dem "Scheißerchen" wäre eigentlich was für Youtub gewesen...Attiny startet...Kater hinterher uns stoppt zum Glück auf der Fensterbank...keine 5 Sekunden später rauscht meine Nachbarin mit dem auto drüber! XD