Hallo,
ich bin neu hier, daher erstmal Hallo in die Runde!
Also mein Problem ist folgendes: ich habe einen PC Speaker an einem
Arduino Mega 2560 angeschlossen und er macht keinen Pieps.
Konkret sieht es so aus: Ich habe mir einen Controller für mein
Terrarium gebaut, gesteuert von dem erwähnten Arduino Mega mit
Relaisboard, Sensoren, Schaltern etc. Und dem PC-Speaker für Warntöne.
Ich habe für jede einzelne Funktion einen Unittest geschrieben (ein
kleiner Sketch, der NUR die Einzelfunktion testet). Der Unittest für den
PC-Speaker funktioniert wunderprächtig, er spielt eine kurze Melodie ab.
Aber mit dem kompletten Produktions-Sketch macht der Speaker keinen
Mucks. Ich habe schon versucht, den auf eine andere PIN zu stecken
(vorher 23, jetzt 17), aber das bringt nix. Ich bin echt ratlos und
könnte gut Hilfe brauchen.
Der komplette Code ist bei Github einsehbar:
https://github.com/TLINDEN/TerraDuino.
Der Produktionssketch ist hier:
https://github.com/TLINDEN/TerraDuino/blob/master/Terraduino/Terraduino.ino
Dazugehörige Libraries:
https://github.com/TLINDEN/TerraDuino/tree/master/libraries
und der funktionierende Unittest ist hier:
https://github.com/TLINDEN/TerraDuino/blob/master/unittests/UnitTestSpeaker/UnitTestSpeaker.ino
Schaltplan meiner Platine (der Widerstand am PC-Speaker fehlt in dem
Plan, der ist aber eingebaut!):
https://github.com/TLINDEN/TerraDuino/blob/master/Images/terraduino-img.png
und Erklärung dazu:
https://github.com/TLINDEN/TerraDuino/blob/master/Schaltplan.txt.
Ich weiss, das ist vielleicht alles ein wenig umfangreich, sorry. Aber
eventuell hat ja jemand schonmal ein ähnliches Problem gehabt und kann
mir weiterhelfen.
Ansonsten noch zum Produktionssketch: der funktioniert vollständig, NUR
der Speaker geht nicht.
besten Gruss,
Tom
PS: ich möchte auch noch erwähnen, dass das mein erstes
Elektronikprojekt ist, ich bis dato noch nie mit sowas zu tun hatte und
auch eigentlich kein C/C++ Programmierer, sondern eher der Perl/Python
Mensch bin. Falls sich da jemand über sicherlich kritisierbare
Konstrukte in meinem Code wundern sollte :)