Das Problem ist wie verbinde ich den Chip mit dem Programmer?
Anhang 31928
Der Chip hat 8 Beine, der Programmer entweder 6 oder 10, je nach Port.
Druckbare Version
Das Problem ist wie verbinde ich den Chip mit dem Programmer?
Anhang 31928
Der Chip hat 8 Beine, der Programmer entweder 6 oder 10, je nach Port.
Du verwendest einen ISP Programmer, den verbindest du mit den ISP Anschlüssen des Controllers. Für den Anfang könntest du es mit dem Testsockel verbinden (einfach das Verbindungskabel am Programmer und am Testsockel, am richtigen Stecker, anschließen).
Wenn du es direkt verbinden willst (am Breadboard), verbindest du die Anschlüsse
VCC mit VCC
GND mit GND
Miso mit Mosi
Mosi mit Miso
Clk mit Clk
Rst mit Rst
Beim 10poligen Stecker hast du mehrmals GND, ansonsten ist er gleich wie der polige. Die anderen lässt du einfach frei. Achte auch auf die Versorgung, wenn die Schaltung von dem Programmer versorgt wird musst du auf die Strombelastung achten. Wenn du die Schaltung mit einer eigenen Versorgung hast, musst du die Versorgung (VCC) vom Programmer trennen, GND muss aber verbunden sein.
MfG Hannes
Danke, mit den Infos hab ich das Pin Layout gefunden https://arduinoelettronica.files.wor...y85_pinout.png
und dann den Programmer, hoffentlich richtig, verbunden.
Leider unterstützt der Programmer wohl nicht Linux und ist damit nutzlos für mich... schick ich morgen zurück.
Ist es möglich den Programmer mit dem ich die Arduinos programmere zu nutzen? https://www.amazon.de/gp/product/B00...?ie=UTF8&psc=1
Oder hast einen Vorschlag für einen einfachen Programmer?
Für die die es interessiert, das passiert wenn ich das Programm downloaden möchte:
Code:Binary sketch size: 808 bytes (of a 8,192 byte maximum)
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Mit avrdude kenne ich mich nicht aus, dadurch kann ich dir da nicht helfen. Aber den Adapter, den du für die Arduinos hast, kannst du nicht nehmen. Das ist kein Programmer, sondern ein USB-Uart Wandler. Uart ist eine RS232 Schnittstelle mit 0-5V (bzw 0-3,3V) Pegel. Du kannst diesen beim Arduino nehmen, weil der Arduino einen bootloader besitzt.
MfG Hannes
Heute ist es soweit, die Wireless Module sind gekommen und sobald ich zuhause bin werde ich sie testen. Vorausgesetzt ich kriege schnell eine Übertragung hin ist das gröbste fertig.
Mit dem neuen Programmer kann ich den Attiny85 problemlos programmieren(auch wenn das anschließen der Beine ein Horror war) und selbst debug prints über UART funktioniert toll.
Die letzte verbleibende Sache ist Powermanagement...
Ich möchte das das ganze mindestens 1 Jahr ohne Batterie wechsel funktioniert. Außerdem wäre es schön wenn ich ein Notsignal senden könnte wenn die Spannung anfängt zu fallen. Der Attiny hat einen ADC, kann ich die Spannung da einfach reinfetzen und mit der internen Referenz vergleichen? Oder ist das eine Schnappsidee? ^^
Welche Batterie wäre sinnvoll? Hab an eine 9V Block Batterie gedacht, jedoch muss ich dann zwingend die Spannung vorher runter auf 5V bringen da ich keine Arduinos mehr nutze.
Im Leerlauf verbrauche ich momentan ca 8mA laut Multimeter.
Würde gern einen längeren Test machen und mir den mAh Wert ausrechnen. Laut Wikipedia haben die 9V Block Batterien ca 550 mAh Kapazität. https://en.wikipedia.org/wiki/Nine-v...specifications
Da ich kein Oszilloskope habe und das 220V Stormmessgerät in Ah Stunden rechnet(und somit wohl sehr ungenau ist für so niedrige Ströme) kann ich mir vielleicht etwas basteln.
Falls meine Idee mit dem ADC funktioniert könnte ich doch mit Hilfe eines bekannten Widerstandes den Strom ausrechnen, das über Zeit integrieren(bzw aufsummieren) und hätte dann am Ende einen Verbrauch oder?
8mA kommte mir jedoch ziemlich hoch vor. Noch hab ich 0 Optimierungen im Code und alles ist Busy-Waiting. Ich denke man kann Strom sparen wenn man auf Interrupts geht und den Kern schlafen legt. Hab versucht etwas über dieses Thema zu finden, aber es ist so umfangreich das ist noch nicht so ganz durchblicke. Tipps?
Aja, weiß jemand wie die Delay Funktion realisiert ist? Ich nehme an auch durch dummes Busy-Waiting anstatt den Kern schlafen zu legen?
Um mit den 550mAh ein Jahr auszukommen, musst du auf 0.063mA, im Mittel, runter.
Am einfachsten ist es schon, alles in Interrupts zu packen. Nach der Initialisierung besteht dann dein Programm nur noch aus:
while (1) SLEEP();
Allerdings musst du auch alle Peripherie ausschalten die nicht benötigt wird.
Weiter sollte man den Takt so weit runterschrauben wie möglich.
Bei CMOS besteht de3r Stromverbrauch aus einem konstanten Anteil, welcher sich aus eckströmen und dem Strom für PullUps zusammensetzt.
Der andere Anteil ist direkt proportional zur Frequenz. Also wenn sich die Frequenz verdoppelt, verdoppelt sich auch der Strom. Dies beruht vor allem im Umladen der Kapazitäten.
Deshalb spart es auch Strom, wenn man nicht benutzte Peripherie vom Takt trennt.
Den Stromverbrauch zu minimieren ist eine hübsche Aufgabe und du wirst dabei viel über den Prozessor lernen. :-)
Ein Oszilloskop brauchst du eigentlich gar nicht, es genügt ein langsames DVM, welches über die Messzeit den Mittelwert bildet. Ein DVM mit Dual- bzw. Quad Slope macht so 2-4 Messungen/s und ist dafür schon ganz gut geeignet.
MfG Peter(TOO)
Eventuell wäre es auch sinnvoll den Strom für die Sensoren + Funkmodul abzuschalten, wenn nicht gemessen wird - Ein kleiner FET ?!
Irgendwie musst Du für Messungen den Controller auch wieder starten, das könnte eventuell ein Timer erledigen.
Jup, daran hab ich auch schon gedacht. Kenne mich nur absolut garnicht mit Transistoren aus und hab schon überlegt ein Relais dafür zu nutzen. :D
Wenn du ein bestimmtest empfehlen kannst dann sag und ich kauf ein paar am Heimweg.
Im allgemeinen hab ich gerade Probleme Nachrichten zu schicken...
Hab diese Lib gefunden: https://github.com/mchr3k/arduino-libs-manchester, nachdem ich verzweifelt bin im Versuch das manuell zu machen. Hab entweder zuviel Störungen in der Umgebung oder ich mach was falsch. Oder beides.
Sende vom Attiny85 zum Arduino Pro Mini aber ich empfange nur Müll, also hin und wieder zufällige Nachrichten.
Sieht in etwa so aus:
Hab deshalb noch nicht mit der Energie Optimierung begonnen.Code:$ cu -l /dev/ttyUSB0 -s 9600
Connected.
208
136
232
192
Hallo,
Ein Relais braucht viel Strom für die Spule, so 30-100mA sind das schnell mal.
Das bringt's nicht wirklich!
Zudem sind Relais langsam, da musst du mit 20-50ms rechnen. In dieser Zeit arbeitet ein µC einige 100'000 Assembler-Befehle ab.
Ein FET wird nur mit der Spannung gesteuert, da fliessen nur Leckströme.
MfG Peter(TOO)
Wie wär's mit einem BS 250?
Schön klein und kann bis zu 180mA schalten.
Für die Sensoren hast Du dich ja schon entschieden.
Du könntest Dir aber auch mal den SHT 11 bzw. den SHT 71 anschauen.
Die könnten Temperatur und Luftfeuchte gleichzeitig. Der A/D Wandler ist mit drauf.
Manko - Die Dinger sind sauteuer.