Ich habe einen Nano, welcher mittels Bluetooth Daten von einem ATTiny85 empfangen soll. Vorab habe ich das Ganze mittels einem 2ten Nano programmiert und getestet. Dies funktioniert.
Nun habe ich den Code des 2ten Nanos für einen ATTiny85 korrigiert und hinaufgeladen. Zumindest das hat funktioniert. Leider bekomme ich den ATTiny nicht dazu, Daten zu senden. Ich habe schon verschiedene Pins ausprobiert, jedoch erfolglos. In einigen Artikeln wird beschrieben, dass man prinzipiell alle Datenpins des Attiny verwenden kann, sofern man diese richtig konfiguriert.
Vlt. habe ich dabei etwas missverstanden oder diese Aussage ist nicht korrekt. Bitte um Unterstützung. Danke !
#include <SoftwareSerial.h>
const int rx = 3;
const int tx = 4;
SoftwareSerial BTserial(rx, tx);
#include <DHT.h>
#define DHTPIN 0 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(rx, INPUT);
pinMode(tx, OUTPUT);
BTserial.begin(38400);
dht.begin();
}
void loop() {
char buffer[10];
float volt = getVoltage();
String volter = dtostrf(volt / 1000, 5, 2, buffer);
delay(250);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
BTserial.print("<Error>");
} else {
String tem = dtostrf(t, 5, 1, buffer);
String temper = (tem);
String hum = dtostrf(h, 3, 0, buffer);
String humper = (hum);
BTserial.print("<" + temper + "C " + humper + "% " + volter + ">");
}
}
// Read the voltage of the battery the Arduino is currently running on (in millivolts)
int getVoltage(void) {
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) // For mega boards
const long InternalReferenceVoltage = 1115L; // Adjust this value to your boards specific internal BG voltage x1000
ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR) | (0 << MUX5) | (1 << MUX4) | (1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (0 << MUX0);
#else // For 168/328 boards
const long InternalReferenceVoltage = 1091L; // Adjust this value to your boards specific internal BG voltage x1000
ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR) | (1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (0 << MUX0);
#endif
ADCSRA |= _BV(ADSC); // Start a conversion
while (((ADCSRA & (1 << ADSC)) != 0))
; // Wait for it to complete
int results = (((InternalReferenceVoltage * 1024L) / ADC) + 5L) / 10L; // Scale the value; calculates for straight line value
return results * 10; // convert from centivolts to millivolts
}
Ich verwende die alte IDE 1.6.13. Eingestellt ist Clock internal 8MHz.
Ich habe schon öfters ATTiny85er programmiert, jedoch bislang nicht als BT-Sender.
Ich bin nicht sicher, was du mit "die fuses auf 8MHz und den Sketch ebenso" meinst.
P.S.: Die beiden HC-05 finden sich und blinken dann im Gleichklang.
Du musst quasi erst den ATtiny85 mit seinen "Basis-Informationen" flashen. Das sind die "fuses", mit der IDE ist das der "Bootloader". Damit erhält er die nötige Taktfrequenz von 8MHz. Und der Sketch muss ebenfalls mit 8MHz geflasht werden, was du offensichtlich gemacht hast. Ohne die läuft SoftwareSerial nicht.
Wenn du den Blinksketch aus den Beispielen drauf spielst, siehst du, das die Taktfrequenz nicht stimmt.
Die ist allerdings sehr alt. Du könntest auch die 1.8.19 installieren, evtl. sogar als portable Version.
Dann bleibt die andere erhalten.
Alles klar. Ja, Bootloader hab ich mit 8MHz geflasht. Deshalb verwende ich nur für den Tiny die v1.6.13, da ist alles richtig voreingestellt und ich muss dann nicht immer umstellen.
Hier ein paar Fotos. Allerdings sind die nicht hilfreich, da man nichts genaues erkennen kann.
Verkabelung, etc. hab ich nochmal gecheckt. Ausserdem wollte ich ein OLed-Display anhängen, um zu sehen, ob der Tiny denn überhaupt irgendwas macht. Auch das hat nicht funktioniert (wegen Fehler in der Wire.h). Ich denke, ich werde statt dem Tiny wohl einen Nano verschwenden müssen.
Yep, Rechnung mal wieder nicht bezahlt.
Ok, schön und gut ... aber wozu brauche ich diese Kondensatoren ? Für den HC-05 mal nicht und der Tiny benötigt auch keine.
Dann hast du bisher viel Glück gehabt.
In jedem Datenblatt steht das. Die muss man natürlich auch lesen.
Da wird dir deine Ironie auch nicht weiterhelfen.
Ich verstehe euch Leutchen manchmal nicht. Man fragt bez. eines Problems und bekommt als Antwort "Umpalumpa". Wieso macht ihr so auf geheimnisvoll ? Ist das so, wenn man mehr als andere weiss ? Wie auch immer ... danke und so.