Μάνο πολύ καλό to project για να επιλέγεις συχνότητα με βάση αυτό που ακούς!
Έχει ένα συντακτικό σφάλμα ο κώδικας σου στη γραμμή if(digitalRead(HIT_SWITCH == LOW)) πρέπει η παρένθεση να κλείνει αμέσως μετρά το HIT_SWITCH if(digitalRead(HIT_SWITCH) == LOW).
Το σπικεράκι είναι σαν αυτό που έχεις βγάλει στο πρώτο σου μήνυμα και το πολύμετρο το δείχνει στα 16Ω.
Θα το δοκιμάσω το βραδύ να δω μήπως ο θόρυβος χάνετε σε κάποιες άλλες συχνότητες.
Αρχικό μήνυμα από
manolena
To buzzer πρέπει να οδηγείται (σε τέτοιες κατασκευές) απο 5V μέσω transistor για καθαρό ήχο. Δεν βλέπω το νόημα για να οδηγηθεί απο AC.
Υπάρχει κάποιο πρόχειρο σχηματικό στο internet για να δοκιμάσω κάτι τέτοιο;
Αρχικό μήνυμα από
SavKok
Ασε το προγραμμα που παρουσιαζε το προβλημα με συνδεδεμενα ολα τα ψιψιψινια πανω.
Δοκιμασε να βαλεις Pull-Down αντισταση 10-20kΩ απο το Pin που οδηγεις το Beeper ως προς τη γη.
Λαθος.Οταν κανεις μια εξοδο '0' ουσιαστικα ειναι σα να το γειωνεις.
Ετσι τραβωντας αρκετο ρευμα και χρησιμοποιώντας 2 Pin,θα καψεις 2 Pin.
Untitled.jpg
Θα το δοκιμάσω το βραδύ, αλλά νομίζω το έχω κάνει ήδη με 10K και μαζί με τον θόρυβο που μειώνεται κάπως, πέφτει και η ένταση του ήχου του beep.
Αρχικό μήνυμα από
SavKok
Το θεμα δεν ειναι να αλλαξεις προγραμμα για να δουλεψει,το θεμα ειναι γιατι σου κανει αυτο που σου κανει.Στο video ο ηχος του Beeper συνδιαζεται με το Rx.
Επισης δεν δικαιολογειται το 0.25V.Πρακτικα θα επρεπε με λογικο '0' να μετρας κατι mV εφοσον ειναι σαν να μην οδηγεις κατι.Eαν τραβουσες/εδινες αρκετο ρευμα με λογικο '0' τοτε 8α μπορουσε να ανεβει η σταθμη,ομοιως θα κατεβαινε απο τα 5V το λογικο '1'.
Κατι μυριζει και δεν ειναι τα ποδια μου
Ανεβασε ολο το κωδικα.
Μετά από την πιο απλή μέθοδο debug, δηλαδή την αποσύνδεση των ξεχωριστών module που μοιράζονται το ground, βρήκα ότι ο θόρυβος χάνετε όταν αποσυνδέσω το 4 Digit Display module που έχω συνδέσει στα pin 12, 11 τα CLK και DIO αντίστοιχα και φυσικά VCC στο 5V και το ground.
sku_254978_1.jpgsku_254978_2.jpg
Το σχηματικό δεν το έχω φτιάξει ακόμα, θα τα βγάλω όλα όταν θα τα έχω έτοιμα και θα το βάλω στα projects.
Εδώ είναι ο κώδικας εν συντομία.
Κώδικας:
#include <TM1637Display.h>
#include "RTClib.h"
RTC_DS1307 RTC;
const int CLK = 12; //Set the CLK pin connection to the display
const int DIO = 11; //Set the DIO pin connection to the display
TM1637Display display(CLK, DIO); //set up the 4-Digit Display.
DateTime currentTime;
bool colon = false;
int piezoPin = 9;
void printTime(bool force) {
...
if(currentSecond != t.second())
{
tone(piezoPin, 5000, 100);
//noTone(piezoPin);
//digitalWrite(piezoPin, 0);
//beep(piezoPin, 100);
/*toneAC(5000);
delay(100);
toneAC(0);*/
currentSecond = t.second();
}
// Print the formatted string to serial so we can see the time.
// Edo ofilete to blink tou RX LED pou stelnei debug data kathe second
Serial.println(buf);
display.showTime(t.hour(), t.minute(), colon);
}
void loop () {
printTime(false);
}
Το RX του USB αναβοσβήνει διότι με κάθε ανανέωση της ώρας και εφόσον υπάρχει διαφορά δευτερολέπτου, στέλνω στο serial monitor debug data με την ώρα και την ημερομηνία που έχει το RTL module.