0
καλησπερα παιδια ψαχνοντας βρηκα ενα πολυ ωραιο apps για διαχειρηση τοu arduino πολυ βολικο και πιστευω για τα λεφτα του παρα πολυ καλο 4,99ευρο ειναι πολυ ευκολο και μπορεις να το διαχειρηστης οπως θες, εχει διαγραματα θελει arduino mega και ethernet βαζω εδω το την σελιδα αν επιτρεπετε βεβαια http://andruino.it/
παντως ευχαριστω ολα τα παιδια που απαντησαν
Φυσικά, για διαίρεση διά 10 πρέπει η μια αντίσταση να είναι 9πλάσια (και ΟΧΙ 10πλάσια) της άλλης, όπως π.χ. οι τιμές 2 - 18 που είπε ο Βασίλης στο #4 (αντίσταση 92kΩ δεν θα βρει). Άλλο πιθανό ζευγάρι τιμών: 3 - 27. Άλλες τιμές μέχρι σειρά Ε24 δεν υπάρχουν.
Αυτά με την προϋπόθεση ότι το κύκλωμα που ακολουθεί έχει άπειρη αντίσταση εισόδου.
η εισοδος αποτι βλεπω εχει περειπου 100ΜΩΑυτά με την προϋπόθεση ότι το κύκλωμα που ακολουθεί έχει άπειρη αντίσταση εισόδου.
Τελευταία επεξεργασία από το χρήστη katmadas : 12-01-17 στις 16:34
Οι δεσμεύσεις και τα χαρακτηριστικά που έχουμε είναι:
1: Vin = 24V (Περιοχή μέτρησης ).
2: Vout < 5V (Arduino limit)
3: Vin/Vout >6 (για safe Vin =30V)
4: Adc resolution = 4.88mv
5: Αντιστάσεις σειράς εμπορίου !!
Vin
|
R1
|
---- Vout
|
R2
|
Gnd
Στην συγκεκριμένη περίπτωση χρειάζεται ένας διαιρέτης με συνολικό άθροισμα αρκετών ΚΩ , και λόγο V1/V2>6
Οι πιθανοί συνδυασμοί, δεδομένης της δέσμευσης στο (5), είναι αρκετοί. Με τυπική R2=10KΩ, οποιαδήποτε τιμή R1 άνω των 50ΚΩ μας καλύπτει το 1,2 και 3.
Όσο μεγαλύτερη αυτή η τιμή (50,60,70,80...100Κ...1Μ) , τόσο μεγαλύτερη η Vin και ποιο ασφαλέστερη η Vout στα 24V.
Επειδή στη ζωή τίποτα δεν είναι δωρεάν, ως αρνητικό επακόλουθο χειροτερεύει το resolution που από 30mv γίνεται πλέον 54mv στα 100KΩ και πάει λέγοντας.
Αυτό βέβαια δεν είναι κάτι τραγικό, όμως δεν μπορούμε να αποφύγουμε. Κάτι κερδίζουμε κάτι χάνουμε.
Συνοψίζοντας : με R1=100KΩ και R2=10KΩ, έχουμε Vin max=55V, resolution 54mv και Vin/Vout=11 !!!
Όλα αυτά γιατί υπάρχει η δέσμευση 5, για να έχουμε ευελιξία στην επιλογή των αντιστάσεων R1, R2.
Πάμε στον κώδικα τώρα για να προσαρμόσουμε το μέχρι στιγμής αλλοπρόσαλλο 11.
Ορίζουμε:
float Vout = 0.0;
float R1 = 100000.0; // τιμή της υψηλής αντίστασης μας R1
float R2 = 10000.0; // τιμή της χαμηλής αντίστασης μας R2
// Τώρα ποια, ορίζοντας τις R1, R2 έχουμε αυτόματο υπολογισμό της διαίρεσης της τάσης.
//Διορθώνουμε στο loop το analogRead σε:
volt = (analogRead(sensorPin5) * 5.0) / 1024;
//υπολογίζουμε την Vout απο τον λόγο διαίρεσης 11 στην περίπτωσή μας:
Vout = volt / (R2 / (R1 + R2));
// αλλάζουμε το:
client.print((int)volt);
//σε :
client.print((int)Vout);
Αυτά.....
-Το σκεπτικό με την ανανέωση των δεδομένων μέσω του (META HTTP-EQUIV=REFRESH CONTENT=2 URL=>) δεν θεωρώ ότι είναι το καλύτερο για την απεικόνιση.
- Με παρόμοιο τρόπο μπορούμε να απεικονίσουμε και τις υπόλοιπες τιμές analogRead(sensorPin1)...κλπ.
- Σε 1.6.5 και 1.8.0 που έχω δεν τρέχει ο κώδικας, έχει πολλά σφάλματα, οπότε επιφυλάσσομαι για το όλο αποτέλεσμα καθότι δεν το είδα στην πράξη.
Τελευταία επεξεργασία από το χρήστη MacGyver : 12-01-17 στις 21:56
FILMAN (13-01-17)
Ναι, 91 υπάρχει, αλλά είναι διαφορετική από τα 90 που χρειάζονται.
Βάζοντας 100kΩ και 10kΩ και 1kΩ έχει βάλει 3 αντιστάσεις και πάλι έχει απόκλιση (100 / 11 = 9.091 και όχι 9). Τελικά γιατί να μην βάλει δύο αντιστάσεις 2 - 18 ή 3 - 27 που θα είναι δύο, και έχουν ακριβώς τον απαιτούμενο λόγο;
Ή εναλλακτικά μπορεί να βάλλει μια αντίσταση και ένα πολύστροφο τριμεράκι για να ρυθμίσει όσο χρειάζεται γιατί και οι 2 αντιστάσεις με τον απαιτούμενο λόγο έχουν ανοχή και μπορεί πάλι να έχει απόκλιση.
Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567
Όχι η πράξη είναι σωστή, η ονομασία της μεταβλητής μπερδεύει: τη vout την ξέρουμε, τη διαβάζουμε και είναι η "volt".
Για να μην υπάρχει μπέρδεμα, αλλάζω και την :
float volt = 0; //σε:
float vout = 0.0;
float Vin = 0.0;
float R1 = 100000.0; // τιμή της υψηλής αντίστασης μας R1
float R2 = 10000.0; // τιμή της χαμηλής αντίστασης μας R2
// Τώρα ποια, ορίζοντας τις R1, R2 έχουμε αυτόματο υπολογισμό της διαίρεσης της τάσης.
//Διορθώνουμε στο loop το analogRead σε:
vout = (analogRead(sensorPin5) * 5.0) / 1024;
//υπολογίζουμε την Vout απο τον λόγο διαίρεσης 11 στην περίπτωσή μας:
Vin = volt / (R2 / (R1 + R2));
// αλλάζουμε το:
client.print((int)volt);
//σε :
client.print((int)Vin);
-Τελικός σκοπός μας είναι να μπορεί να βάλει οποιεσδήποτε αντιστάσεις και το πρόγραμμα να υπολογίζει αυτόματα τον λόγο.
nestoras (14-04-17)