Hallo,
vorab: ich Programmiere noch nicht lange mit dem Attiny.
Ich habe ein 433mhz sender & empfänger, und versuche diese mit dem
Attiny auszuwerten bzw. zu senden. Die Module funktionieren, da ich
diese bisher mit einem Raspberrypi Zero in Benutzung hatte. Nun will ich
aber keinen ganzen pi nur für 1io kabel verschwenden, daher der Attiny.
Nun zum Problem: Ich habe im Internet gesucht, und auch gefunden, jedoch
funktioniert es bei mir nicht.
Hier zuerst der Code für der Empfänger:
//
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
int ledPin = 0;
void setup()
{
mySwitch.enableReceive(1);
}
void loop()
{
if (mySwitch.available())
{
int value = mySwitch.getReceivedValue();
if (value == 0)
{
digitalWrite(ledPin, 0);
}
else
{
digitalWrite(ledPin, 1);
}
mySwitch.resetAvailable();
}
}
//
Und hier die Verkabelung:
ATT pin6 - Empfänger Data pin
ATT pin5 - Led
Mit welcher Hardware und welcher Bibliothek dort sendest du?
Ich habe mir ein Schänzchen gesucht, mit einem Arduino zu senden, und
dann mit dem Raspberry zu empfangen. Und muss als nächstes meinen Kram
auf den von dir erwähnten Tiny portieren.
> jedoch funktioniert es bei mir nicht.
Das ist keine aussagekräftige Fehlerbeschreibung. Enstprechend bekommst
du eine passender Antwort:
Entweder ist dein Programm oder die Hardware irgendwo fehlerhaft.
Nachtrag: Ein Schaltplan könnte auch hilfreich sein, sowie ein
Oszillogramm der seriellen Dateinleitungen.
Es gibt keine Fehlermeldung. Das Programm wurde auf den Tiny ohne
Fehlermeldung drauf geladen. Ich habe es mit verschiedenen Bibliotheken
versucht, wie man sehen kann versuche ich grade die RCSwitch
Bibliothek(Die selbe wie auf dem Pi). Ebenfalls bin ich auf den Gedanken
gekommen, dass es vielleicht nicht möglich ist, vom Tiny zum Pi zu
senden, jedoch habe ich einen sender an einen anderen Tiny gesteckt um
zu sehen was passiert, was nichts war.
Was funktioniert denn nicht? Mikrocontroller haben zahlreiche
Funktionen, gehen wir die mal durch:
1) Spannungsversorgung liegt an, aber ist sie stabil?
2) Das Programm lässt sich in den Flash Speicher übertragen -> Ok
3) Der Mikrocontroller wird getaktet und arbeitet (mit LED-Blinkprogramm
testen).
4) Auf den seriellen Leitungen RxD und TxD tut sich irgendwas (mit LED's
bei niedriger Baudrate testen)
5) Mit einem Oszillogramm verifiziert man, ob die seriellen Daten
korrekt übertragen wurden bzw. was daran falsch ist.
Außerdem solltest du uns wirklich deinen Schaltplan zeigen, auch ein
Foto vom Aufbau hilft oft, grobe Fehler zu erkennen.
Philipp D. schrieb:> Ich habe im Internet gesucht, und auch gefunden, jedoch> funktioniert es bei mir nicht.
RCSwitch funktioniert mit Arduino UNO und einigen
Funksteckdosen-Protokollen ziemlich sicher:
https://www.youtube.com/watch?v=9JBkpcDb5wI
Du musst schon herausfinden, was bei deinen Konfigurationen anders ist.
Hallo Philipp,
du definierst LED-Pin = 0 und ReceivePin = 1, verkabelst aber, wie du
unten schreibst, Led auf Pin 5 und ReceiverPin auf 6.
Das würde ich noch einmal prüfen.
Hallo,
ich habe gerade heute meinen ATtiny85 mit einem 433 Mhz Sender ganz
leicht zum laufen bekommen. Bei der Programmierung des ATtiny habe ich
für mich den einfachsten Weg gewählt. Ich habe mir einen Programmer mit
einem 6adrigen Kabel gekauft(zusammen knapp 9€). Programmieren über den
Arduino IDE mit USBasp. klappt auf Anhieb. Ich habe auch erst mit dem
BLINK Sketch angefangen.Der fertige Aufbau ist gerade mal 4x3cm gross.
bisher hatte ich die Schaltung mit einem Arduino pro mini realisiert.
Ich überwache damit meinen Teichwasserfalll auf Trockenlauf. Demnächst
baue ich meine Teichwasserniveauregelung auch vom Arduino Pro Min auf
den ATtiny85 um. Man spart sehr viel Platz, Geld und Stromverbrauch. Bei
mir läuft die Regelung über ein Solarpanel mit einem kleinen 12V Akku
1,2 Ah und einem Step up Regler auf 5V hervorragend.
Ich muss aber auch erwähnen, dass ich auch grosse Schwierigkeiten hatte.
Nur, wie beschrieben, mit dem Arduino IDE und als Programmer Arduino as
ISP hat es nicht geklappt.
herfel
Soweit ich in der RCSwitch.h lese (mein Englisch ist nicht das beste)
funktioniert mit dem Tiny85 das Empfangen nicht?
// At least for the ATTiny X4/X5, receiving has to be disabled due to
// missing libm depencies (udivmodhi4)
#if defined( _AVR_ATtinyX5_ ) or defined ( _AVR_ATtinyX4_ )
#define RCSwitchDisableReceiving
#endif
Oder liege ich da falsch?
Mein Nano als Empfänger funktioniert einwandfrei. Wenn ich aber den
selben Code (mit geänderten Pins) auf den Tiny lade funktioniert der
Empfang nicht mehr. Das manuelle schalten über angeschlossenen Button
funktioniert aber.
Ich würde mal nachschauen, wozu die libm überhaupt benötigt wird.
Vielleicht kann man die entsprechenden Stellen im Quelltext durch etwas
Anderes ersetzen.