Hallo, Ich möchte mit einen Attiny85 Digispark V3 USB-Board mit einen kleinen Lautsprecher einen Dauerton erzeugen. Leider erzeugt der folgende Arduino-Code nur einen sehr leisen Ton.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
Nach einigen Recherchen habe ich dann bei gleicher elektrischer Schaltung, folgenden Code getestet.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
Und siehe da, dieser Code erzeugt einen gut hörbaren Ton. Leider lässt sich der Ton nicht abstellen und der Code funktioniert auch nicht mit externer Spannungsversorgung ohne USB-Anschluss. Seltsam ist aber das bei identischer elektrischer Beschaltung (es wurde nur das andere Programm auch den Attiny gespielt) so verschiedene Ergebnisse erzeugt. Daraufhin habe ich das Ausgangssignal mit einen Oszilloskop überprüft. Ohne Last könnte ich beim 1.Code ein etwas verformtes (steile High-Flanke; LOW-Wert wie eine Kondensatorentladung) 5V Rechtecksignal messen. Unter Last brach dann aber die Ausgangsspannung zusammen. Bei einer Last von 10 kOhm war nur noch ca.50% der Amplitudenspannung am Ausgang vorhanden. Das Rechtecksignal war dann aber relativ sauber. Beim 2.Code wurde im Leerlauf ein relativ sauberes 5V Rechtecksignal mit einem Überschwinger in den Flanken gemessen. Bei einer Last von nur ca.12 Ohm waren noch ca.50% der durchschnittlichen Amplitudenspannung am Ausgang vorhanden. Die Spannung der Überschwinger war ca. Doppelt so hoch. Demnach müsste beim 1.Code der Ausgang einen Innenwiderstand von ca. 10 kOhm haben und beim 2.Code einen Innenwiderstand von ca. 12 Ohm haben. Dieses Verhalten ist eigentlich nicht nachvollziehbar, da nur die Software geändert wurde. Leider konnte ich im Datenblatt des Attiny85 nichts finden, was diesen Effekt erklären könnte. Ich bin eigentlich davon ausgegangen, dass die Funktion digitalWrite() auch nur die Register setzt. Anscheinend gibt es aber einen Unterschied. Hat jemand eine Idee wie dieses unterschiedliche Verhalten an ein und den selben Port zu erklären ist ?



