» Ηλεκτρονικά » Ανιχνευτές μετάλλων »Ανιχνευτής μετάλλων στο Arduino Pro Mini. Επεξεργασία των βάθους του Kolokolov-Shchedrin σύμφωνα με την αρχή της "μετάδοσης"

Ανιχνευτής μετάλλων στο Arduino Pro Mini. Επεξεργασία των βάθους του Kolokolov-Shchedrin σύμφωνα με την αρχή της "μετάδοσης"


Ανακύκλωση του σχήματος βαθιάς ύδρευσης Kolokolov-Shchedrin Διαφορές από το αρχικό σχήμα:
1. Δεν υπάρχει ΟΧΙ κρυσταλλικός ταλαντωτής στο chip k561 .. και 32 kHz χαλαζία. Το σήμα 32 kHz δίνει το Arduino Pro Mini.
2. Τα κυκλώματα ειδοποίησης ήχου σε διάφορα μικροκυκλώματα της σειράς 561 επίσης απουσιάζουν - φωνάζουν και τους στόχους, τον Arduino (και πρέπει να πω, εξαιρετικές φωνές σε σύγκριση με το κύκλωμα του συγγραφέα).
3. Powered με μονοπολική τάση 12v (μπαταρία μολύβδου-οξέος).
4. Ρυθμίστε την ευαισθησία με τα κουμπιά. Με την κλίμακα ADC από 0 έως 1023, το όριο απόκρισης είναι ρυθμιζόμενο από 1 έως 38 (η τιμή μπορεί εύκολα να αλλάξει στο σκίτσο).


Ανιχνευτής μετάλλων στο Arduino Pro Mini. Επεξεργασία των βάθους του Kolokolov-Shchedrin σύμφωνα με την αρχή της


Το σημαντικότερο ήταν ότι θα ήθελα να δείξω σε αυτό το άρθρο ότι είναι δυνατή η συναρμολόγηση MD σε Arduino όχι κατώτερη από το πρωτότυπο σε ευαισθησία (αυτό εξελίχθηκε, επειδή τα πρωτότυπα του αρχικού κυκλώματος συλλέχθηκαν με τη σειρά των 10 τεμαχίων, έτσι υπάρχει υλικό για σύγκριση). Αρχικό κύκλωμα:


Όταν άρχισα να δουλεύω με τον Arduino, ήμουν τόσο ενθουσιώδης που σκέφτηκα ότι θα μπορούσα να βρω και να συναρμολογήσω οποιοδήποτε κύκλωμα ανιχνευτή μετάλλων από το Διαδίκτυο στο Arduino που θα μπορούσα εύκολα να βρω στο τεράστιο χωματερή σκουπιδιών. Κατ 'αρχήν, αποδείχθηκε έτσι, αλλά τα κυκλώματα βασίστηκαν σε έναν μετρητή συχνότητας, ο οποίος δεν επέτρεπε την επίτευξη μιας πραγματικά καλής γκάμας. Ορισμένα παιδικά παιχνίδια και μια δοκιμή του στυλό + επιχειρεί να κερδίσει χρήματα για αρχάριους. Το πρωτότυπο αυτού του MD είναι ένας πραγματικός άξονας εργασίας που σας επιτρέπει να βρείτε μεγάλα αντικείμενα σε απόσταση 2 μέτρων (δείτε το βιβλίο Kolokolov-Shchedrin στο Google). Δεν υπάρχουν στατιστικά στοιχεία για το μετασχηματισμένο md. Ελπίζω να εμφανιστεί με την υποστήριξη των οπαδών του MD και του Arduino. Το πρόγραμμα συνεργάστηκε με τους Arduino Uno και Arduino Pro Mini.

Περαιτέρω στο σύνδεσμο εκτίθεται η διαδικασία γέννησης αυτού του MD στην ιστοσελίδα του συγκολλητικού σιδήρου, η οποία διήρκεσε περισσότερο από ένα χρόνο και ώθησε τον συγγραφέα να σπουδάσει duin προγραμματισμού. Ίσως το σκίτσο να φαίνεται άθλια σε κάποιον - θα δεχθώ με χαρά τα FIXES σας.




Προς το παρόν, υπάρχει ένα σκίτσο που σας επιτρέπει να ρυθμίσετε το φράγμα ευαισθησίας (καρφίτσα 7 douins +1 στο φράγμα, καρφίτσα 8 -1 στο φράγμα). .
Arduino για μίνι 5v, 16MHz, ATmega168 και η οθόνη που χρησιμοποιούνται αυτά. Δίπλα στην κλίμακα είναι ο προσαρμογέας Mini SD


Όπως ήδη αναφέρθηκε 1602 κοστίζει 86 ρούβλια, ProMini - 82 ρούβλια. Αν θέλετε, μπορείτε γενικά να πάρετε ένα γυμνό ATmega168, να αναπτύξετε ένα σκάφος για αυτό και να γεμίσετε το σκίτσο απευθείας σε αυτό.Έτσι, για παράδειγμα, εγκατέστησα μαμά-μπαμπά στην κάρτα MD χρησιμοποιώντας τον σύνδεσμο. Η φωτογραφία δείχνει το βύσμα 6 ακίδων του Arduino, μέσω του οποίου τα σκίτσα χύθηκαν απευθείας πάνω στον πίνακα.

Sketch-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino

// Αναλογική είσοδος A3 για βολτόμετρο
// Αναλογική είσοδος A4 για σήμα
// 6- συμπέρασμα του zook
// 9 - συχνότητα εξόδου 31200 Hz
#include
Υγρό κρύσταλλο lcd (12, 11, 5, 4, 3, 2).
                                       
  byte z1 [8] = {// εικονίδιο μπαταρίας
  0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110}.
 
 int countleds = 0; // μεταβλητή για να αποθηκεύει την τιμή της κλίμακας
 int voltag = 0; // μεταβλητή για την αποθήκευση της τιμής τάσης
 int noll = 0; // μεταβλητή για να αποθηκεύει την τιμή του μεσαίου σημείου
   #define NUM_SAMPLES 10 // 10 αναλογικά δείγματα για ανάγνωση σε 1 δευτερόλεπτο
   int sum = 0; // σύνολο των δειγμάτων που ελήφθησαν
   int sun = 0; // ίδιο, αλλά διαιρούμενο με 10
   unsigned char sample_count = 0; // τρέχων αριθμός δείγματος με
   τάση πλωτήρα = 0,0; // υπολογισμένη τάση
   const int button1 = 7; // barrier plus button
   const κουμπί int2 = 8; // barrier-minus κουμπί
   int i = 5; // φράγμα
   
άκυρη ρύθμιση () {
     lcd.begin (16,2). // αρχικοποίηση εμφάνισης
     lcd.setCursor (1, 0).
     lcd.setCursor (10,1).
     lcd.print ("Rx-Tx").
     καθυστέρηση (3000).
     lcd.clear ();
     
     TCCR1A = TCCR1A & 0xe0 | 2.
     TCCR1B = TCCR1B & 0xe0 | 0x09;
     analogWrite (9, 126); // στον ακροδέκτη 10 PWM = 50% f = 31200Hz
     
     lcd.createChar (1, z1).
     }}
     
void loop () {
     πλήκτρο intState1 = HIGH; // Η κατάσταση του κουμπιού είναι μία
     κουμπί intState2 = HIGH; // Κατάσταση δύο κομβίων
   sample_count = 0; // επαναφέρετε το περίγραμμα του αριθμού των προσθηκών
   άθροισμα = 0. // επαναφέρετε το σύνολο των 10 προσθηκών
   ενώ (sample_count & lt_ NUM_SAMPLES) {
   άθροισμα + αναλογικόΔιαβάστε (A4); // η επόμενη μέτρηση προστίθεται στο άθροισμα
   sample_count ++; // η μονάδα προστίθεται στον αριθμό μέτρησης
   sun = sum / 10;} // βρείτε τη μέση τιμή από 10 μετρήσεις
   
   noll = αναλογικόΔιαβάστε (A3) / 2; // μεσαία ισχύ
   τάση πλωτήρα = χάρτης (αναλογική ανάγνωση (A3), 0,1023,0,1500) /100,0;
                                        // Βολτόμετρο ενσωματωμένο στην είσοδο A3
   εάν (ήλιος & gt; = noll + i) {countleds = χάρτης (ήλιος, noll + i, noll * 2 - 250, 9, 14)?
                                        // εάν το ληφθέν αποτέλεσμα είναι στο 9-15ο τμήμα της κλίμακας
    τόνος (6, countleds * 100),}
   αν (ήλιο & lt; = noll - i) {countleds = χάρτης (ήλιος, 116, noll-i, 0, 7)?
                                        // αν το αποτέλεσμα που προκύπτει είναι 0-7 τμήμα της κλίμακας
    τόνος (6, αρίθμηση * 50); }}
     αν (ήλιο & lt; noll & amp; sun & gt; = noll - (i-1)) {countleds = 7;
    noTone (6); } // νησίδα της εικονικής ZERO (7 τμήματος)
     εάν (sun & gt; noll & amp; & sun 
9.8
10
10

Προσθέστε ένα σχόλιο

    • χαμόγελοχαμογελάειxaxaΕντάξειdontknowyahoonea
      αφεντικόξυστάανόητοςναιναι-ναιεπιθετικήμυστικό
      Συγγνώμηχορόςdance2dance3συγχώρησηβοήθειαποτά
      σταματήστεφίλουςκαλόgoodgoodσφυρίχτρασυρρέουνγλώσσα
      καπνόςπαλαμάκιαcrayδηλώστεαπογοητευτικήdon-t_mentionκατεβάστε
      θερμότηταςirefulγέλιο1mdaσυνάντησηmoskingαρνητική
      not_iποπ κορντιμωρίαδιαβάστετρομάξτεφοβίζειαναζήτηση
      χλευάζωthank_youαυτόto_clueumnikοξείασυμφωνώ
      κακόbeeeblack_eyeblum3ρουζκαυχηθείτεπλήξη
      λογοκρισίαευχαρίστησηsecret2απειλήσουννίκηyusun_bespectacled
      shokrespektlolπροβλέπουνκαλωσορίστεkrutoyya_za
      ya_dobryiβοηθόςne_huliganne_othodifludαπαγόρευσηκοντά
24 σχόλιο
Ο συγγραφέας
Ευχαριστώ πολύ! Το ζήτησα από τη δεύτερη φορά. Έχω ραμμένες μέσω Arduino uno. Το πρόβλημα εξαφανίστηκε μετά την ενημέρωση του bootloader. Τώρα ενδιαφέρει πώς να ρυθμίσετε περαιτέρω.
puteec fu
Οποιοσδήποτε Arduino είναι κατάλληλος για atmega168, atmega328. Σχετικά με το nano αυτό με ένα βύσμα USB αν δεν λανθασμένα. Ράψτε το Arduino ide από τα παραδείγματα του σχεδίου Blink (αναβοσβήνουν τα LED στο pin 13, το LED είναι εγκατεστημένο στην πλακέτα). Βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή θύρα, ότι η κάρτα έχει επιλεγεί σωστά, ότι ο επεξεργαστής στον πίνακα έχει επιλεγεί σωστά, ότι η συχνότητα χαλαζία στον πίνακα έχει επιλεγεί σωστά, ότι η μέθοδος υλικολογισμικού (μ2) έχει επιλεγεί σωστά.
Δεν παρουσιάστηκε σφάλμα.
Δημιουργήστε ένα νέο αρχείο στο Arduino, αντιγράψτε το σκίτσο από εδώ σε ένα νέο και καθαρό σκίτσο και θα λειτουργήσει.Αλλά πρώτα, κάντε την ενδεικτική λυχνία LED στον πίνακα Arduino να αναβοσβήνει με ένα τυποποιημένο παράδειγμα που αναβοσβήνει. Στη συνέχεια, προχωρήστε.
Αγόρασα το Arduino p nano μόνο στον επεξεργαστή Atmega328. Αναθεώρησα μια δέσμη βίντεο και φόρουμ ... είπαν ότι θα έπρεπε να εμφανιστεί .... αλλά τότε ο bummer δεν αναβοσβήνει .... δίνει #include περιμένει "FILENAME" ή . Έχει συναντήσει κάποιος αυτό;
Ο συγγραφέας
Ένα σκίτσο λειτουργεί με αυτό το διοικητικό συμβούλιο. Τι ακριβώς είναι το βύσμα που σχηματίζεται;
Εάν ρίξετε το τελευταίο σκίτσο, τότε όλες οι λεπτομέρειες που σχετίζονται με το D3.3 και το D3.4 καθώς και οι ίδιοι δεν μπορούν να εγκατασταθούν. Στο συγκολλητικό σίδερο υπάρχει μια ανασύνταξη σε αυτό το θέμα
Anjey888
Γεια σας. Αυτό το θέμα ενδιαφέρεται πολύ. Θέλω να συγκεντρώσω τη συσκευή. Έκανα μια σανίδα συγκόλλησης σιδήρου από το πάτημα ... και έπειτα κολλήσαμε. Δεδομένου ότι υπάρχει μεγάλη διαφωνία μεταξύ του σκάφους και του κυκλώματος. Ξεκινήσατε να συγκρίνετε το συμβούλιο σας ... αυτό είναι μια μεγάλη διαφορά. Αλλά συγχέεται με την τσέπη στο Arduino.
Ζητώ τη βοήθεια εξειδικευμένων ανθρώπων.
Ο συγγραφέας
Το ίδιο ισχύει και για άλλα μέταλλα. Το βάθος ανίχνευσης εξαρτάται από την περιοχή του στόχου. Όσο περισσότερο, τόσο πιο βαθιά.
Επισκέπτης Eugene
Ποια είναι τα όρια για την ανίχνευση αντικειμένων; Χρυσός, αλουμίνιο, χαλκός.
Επισκέπτης Αλέξανδρος
Τι να κάνετε τώρα, γιατί υπάρχει ακόμα ένα φράγμα Schottky;
Ο συγγραφέας
Καλά εδώ! Ακόμα και η μικρότερη αξία δεν έχει σχέση με την ερώτηση! Ευχαριστώ για τη διευκρίνιση.
Απόσπασμα: puteec_80
Και οι άνθρωποι θα καταλάβουν πιο γρήγορα και διαισθητικά τι μιλάω.
Μπορείτε να συνεχίσετε να παραμένετε σ 'αυτό το σφάλμα. ((Οι τεχνικά μορφωμένοι άνθρωποι θα υποστούν μικρή απώλεια.
ΜΠΑΡΙΕΡ, σύζυγος.
1. Ένα εμπόδιο (ένα είδος τοίχου, μια εγκάρσια δοκός) που έχει τεθεί στο δρόμο.
2. Φράχτη, περίφραξη.

THRESHOLD, όριο, σύζυγος.
1. Στην επιστήμη και την τεχνολογία, το κατώφλι ονομάζεται η μικρότερη τιμή, ο βαθμός εκδήλωσης κάτι.
Το κατώφλι ευαισθησίας της συσκευής. | Όριο ακρόασης. | Κατώφλι πόνου. | Ο αισθητήρας ενεργοποιείται όταν ξεπεραστεί το καθορισμένο όριο θερμοκρασίας.
χαμόγελο
Ο συγγραφέας
Ας μείνουμε με τους δικούς μας. Θα γράψω "αυξάνοντας το φράγμα από μία μονάδα" και "η ευαισθησία του δέκτη ήταν 5 μV". Και γράφετε: "Αυξάνοντας το κατώφλι της λειτουργίας από μία μονάδα" και "το όριο ευαισθησίας του δέκτη .." Επιπλέον, οι άνθρωποι θα καταλάβουν πιο γρήγορα και διαισθητικά τι μιλώ.
Και εξηγώ σε αυτό το παράδειγμα. Δεν υπάρχει αυστηρό όριο, διότι δεν υπάρχει σαφής κλίμακα αναφοράς. Υπάρχει κάποιου είδους κυμαινόμενη ζώνη διακοπής από ένα κυμαινόμενο σήμα. Επομένως, μου φαίνεται ότι ο ορισμός ενός φραγμού είναι πολύ πιο κατάλληλος για αυτή την "πλωτή" λωρίδα απ 'ό, τι για ένα όριο.
Γενικά άσκοπο και ανόητο επιχείρημα. Έχετε κάποιες ερωτήσεις;
Απόσπασμα: puteec_80
Ποια είναι τα κατώτερα και ανώτερα όρια τους;
Ίσως οι σημασίες των μεταφρασμένων λέξεων να μην ταιριάζουν ή να μην ταιριάζουν ελαφρώς. Αλλά περιγράφουν τέλεια τη διαδικασία και σταδιακά μπαίνουν σε αργκό.
Ακριβώς ποιο είναι το κατώτατο όριο. Το κατώτατο όριο απάντησης είναι στην περίπτωσή σας. Εξηγήστε πώς ο "φραγμός" περιγράφει τη διαδικασία.
Όσον αφορά την ένωση αργαλειού - τώρα υπάρχουν πολλές παρανοήσεις. ((
Ο συγγραφέας
Σε αυτή την περίπτωση, εξακολουθώ να τείνω να χρησιμοποιώ τη λέξη "εμπόδιο", επειδή είναι το εμπόδιο που τίθεται στο κείμενο του προγράμματος, απλά δεν εμπίπτει στην εμβέλειά του, το σήμα γίνεται αντιληπτό από τον μικροελεγκτή ως χρήσιμο. Και είναι το εμπόδιο επειδή Έχει δύο τιμές - το ανώτερο και κατώτερο όριο της διαδρομής, δηλ. η λειτουργία συμβαίνει πάνω από το "άνω" και κάτω από το "κατώτερο" όριο του φραγμού στην κλίμακα ADC. Ωστόσο, ξέρετε καλύτερα. Ποια είναι τα κατώτερα και ανώτερα όρια τους;
Ίσως οι σημασίες των μεταφρασμένων λέξεων να μην ταιριάζουν ή να μην ταιριάζουν ελαφρώς. Αλλά περιγράφουν τέλεια τη διαδικασία και σταδιακά μπαίνουν σε αργκό.
Με την ευκαιρία. Η ευαισθησία και το εμπόδιο είναι τελείως διαφορετικά.
ΝαιΔιασταυρώνονται. Αλλά όχι περισσότερο.
Απόσπασμα: puteec_80
Σε ξένο MD, το μενού λέει "Barier".

Μπορεί να σας εκπλήξω, αλλά πολλές αγγλικές λέξεις που μοιάζουν με τις δικές μας έχουν διαφορετικό νόημα, μερικές φορές στενές, μερικές φορές όχι. Αναζήτηση για τις λέξεις "ψεύτικοι φίλοι μεταφραστών".
Τώρα ουσιαστικά. Στα ρωσικά τεχνικά τεκμηρίωσης όχι δεν υπάρχει απλά μια τέτοια φράση "φράγμα ευαισθησίας" - και αυτό είναι! Υπάρχει ένα «όριο ευαισθησίας», σε ορισμένες περιπτώσεις μπορούμε να πούμε «όριο ευαισθησίας», αλλά όχι ένα «φράγμα ευαισθησίας». Ίσως σε μερικούς άλλους κλάδους της γνώσης χρησιμοποιείται, αλλά όχι στην ηλεκτρονική.
Ο συγγραφέας
Λοιπόν, αυτό σημαίνει ότι όλοι οι ξένοι μηχανικοί πηδούν πάνω από ένα ραβδί στο δρόμο. Σε αλλοδαπό MD, το μενού λέει "Barier" Σύντροφος Ιβάν, πέφτετε στα μάτια μου με τέτοια μικροσκοπική μαρκαδόρο! Πού είναι τα σχόλιά σας σχετικά με τα πλεονεκτήματα; Μετά από αυτό θα πρέπει να χτυπήσετε τα χέρια σας επίπεδη στο μέτωπο; Συνηθίζατε να με χαλάτε συχνά τιμωρία
Η διαφορά είναι σημαντική: το όριο είναι ένας τεχνικός όρος, το φράγμα είναι ένα "ραβδί πέρα ​​από το δρόμο".
Ο συγγραφέας
Ίσως. Αλλά δεν βλέπω τη διαφορά.
Ίσως δεν είναι ένα "φράγμα", αλλά ένα όριο; ·)
Ο συγγραφέας
Στο διάγραμμα δεν εμφανίζονται τα κουμπιά ρύθμισης φραγμού. Συνδέονται με τις ακίδες 7 και 8 του Arduino. Κάθε ένας τραβηγμένος με αντίσταση 10k στο συν, κλείνει όταν πατάτε τη μάζα.
Ο συγγραφέας
void loop () {
πλήκτρο intState1 = HIGH; // Η κατάσταση του κουμπιού είναι μία
κουμπί intState2 = HIGH; // Κατάσταση δύο κομβίων

int pot = αναλογική ανάγνωση (A4); // φίλτρο για γρήγορη αλλαγή σήματος
σημάδι = σημάδι * (1-K) + δοχείο * K;

noll = noll * (1-L) + σύμβολο * L; // φίλτρο μακροπρόθεσμου σήματος
// Βολτόμετρο ενσωματωμένο στην είσοδο A3
τάση πλωτήρα = χάρτης (αναλογική ανάγνωση (A3), 0,1023,0,1500) /100,0;

εάν (σημάδι> = noll + i) {countleds = χάρτης (υπογραφή, noll + i, 1023, 9, 14);
// εάν το ληφθέν αποτέλεσμα είναι στο 9-15ο τμήμα της κλίμακας
τόνος (6, countleds * 100),}
αν (σημάδι <= noll - i) {countleds = χάρτης (υπογραφή, 0, noll - i, 0, 7);
// αν το αποτέλεσμα που προκύπτει είναι 0-7 τμήμα της κλίμακας
τόνος (6, αρίθμηση * 50); }}
αν (σημάδι noTone (6); } // νησίδα της εικονικής ZERO (7 τμήματος)
αν (σημάδι> noll && υπογραφή <= noll + (i-1)) {countleds = 8;
noTone (6); } // νησί της εικονικής κλίμακας ZERO (8 τμήματος)


{lcd.setCursor (countleds, 0). // ορίστε το δρομέα στη στήλη "countled", γραμμή 0
lcd.print ("\ xff"); // γεμάτο εικονίδιο
lcd.setCursor (0, 1). // μετακίνηση σε 2 σειρές, στήλη-0
lcd.print (char (1)), // Ένδειξη εικονιδίου μπαταρίας
lcd.setCursor (1, 1). // μετακίνηση σε ένδειξη τάσης
lcd.print (τάση); // τάση
lcd.setCursor (7, 0). // 8η στήλη 1η σειρά
αν (υπογραφή lcd.setCursor (8, 0). // 9η στήλη 1η σειρά
αν (σημάδι> noll) {lcd.print ("}")}} // εκτύπωση
lcd.setCursor (7,1).
lcd.print ("Β =").
lcd.setCursor (9,1). // 11 στήλη 2η σειρά
lcd.print (i); // φράγμα
lcd.setCursor (13,1). // 13η στήλη 2η σειρά
lcd.print (σημείο); // εκτυπώστε τη μέση τιμή της τιμής ADC
καθυστέρηση (10). // περιμένετε

buttonState1 = ψηφιακή ανάγνωση (κουμπί1); // Read Button 1 Status
buttonState2 = digitalRead (κουμπί2); // Αναγνώριση του κουμπιού 2
αν (buttonState1 == LOW) {i = i + 1; καθυστέρηση (50) ·}
// Όταν πατηθεί το κουμπί, το φράγμα αυξάνεται κατά 1. Καθυστέρηση 50
αν (buttonState2 == LOW) {i = i - 1; καθυστέρηση (50) ·}
// Όταν πιέσετε το κουμπί, το φράγμα μειώνεται κατά 1. Καθυστέρηση 50
εάν (i <1) {i = 1;} // Κάτω όριο του φράγματος
if (i> 38) {i = 38;} // Το ανώτερο όριο του φράγματος

lcd.clear ();
}
}
Ο συγγραφέας
Νέο σκίτσο. Ο αλγόριθμος για την ανίχνευση του χρήσιμου σήματος έχει αλλάξει. Το σχήμα απλοποιείται, δεν υπάρχουν στοιχεία D3.4 και D3.3 με όλες τις δεσμεύσεις τους. Αν πάρετε το δικό σας σήμα, τότε όλες αυτές οι λεπτομέρειες δεν μπορούν απλά να εγκατασταθούν. Περισσότερη ευαισθησία. Δεν υπάρχουν ψευδώς θετικά.
Σκίτσο:

// Α3 αναλογική είσοδος για βολτόμετρο. Ρυθμιζόμενη από ποτενσιόμετρο R32.
// Αναλογική είσοδος Α4 για το σήμα. Ρυθμίστε με το ελάχιστο σήμα στο D3.2
// αντίσταση R40 για τις μετρήσεις ADC περίπου 510.
// 6- συμπέρασμα του zook
// 9 - συχνότητα εξόδου 31200 Hz
#include
Υγρό κρύσταλλο lcd (12, 11, 5, 4, 3, 2).

byte z1 [8] = {// εικονίδιο μπαταρίας
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110}.
int countleds = 0; // μεταβλητή για να αποθηκεύει την τιμή της κλίμακας

τάση πλωτήρα = 0,0; // υπολογισμένη τάση
const int button1 = 7; // barrier plus button
const κουμπί int2 = 8; // barrier-minus κουμπί
int i = 5; // φράγμα
const πλωτήρα Κ = 0,1; // φίλτρο παρακολούθησης γρήγορες αλλαγές (συντελεστής μικρότερο το ισχυρότερο)
const πλωτήρας L = 0,07; // μεταλλάξεις παρακολούθησης φίλτρων για μεγάλο χρονικό διάστημα
σύμβολο float = 0. // φίλτρο
float noll = 0;

άκυρη ρύθμιση () {
lcd.begin (16,2). // αρχικοποίηση εμφάνισης
lcd.createChar (1, z1).
pinMode (9, OUTPUT);
pinMode (6, OUTPUT);
TCCR1A = TCCR1A & 0xe0 2.
TCCR1B = TCCR1B & 0xe0 0x09;
analogWrite (9, 126); // στον ακροδέκτη 10 PWM = 50% f = 31200Hz
// στην πραγματικότητα, για PWM = 50% πρέπει να ρυθμίσετε τουλάχιστον 220 πλήρωση, σύμφωνα με τον παλμογράφο
// ο ντουένος δεν μπορεί να το χειριστεί. Αυτό δεν είναι κρίσιμο.
}
Ο συγγραφέας
Εκείνοι που θα παρακολουθήσουν το σκίτσο. Τα σύμβολα> = και <= έχουν αντικατασταθεί από περίεργους συνδυασμούς & gt; και & lt; Γιατί δεν ξέρω. Όταν το σφάλμα ήταν κανονικό.

Σας συμβουλεύουμε να διαβάσετε:

Κάντε το για το smartphone ...