Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα σε ολους. εχω το εξης θεμα: προσπαθω να λυσω καποισ παλια θεματα σχετικα με arduino και εχω σκαλωσει ασχημα. Συγκεκριμενα, στο κυκλωμα υπαρχει αισθητηριο υπερυθρων και θελω να κινειται μεσα σε καποια ορια οπως αναφερεται παρακατω:

 

κυκλωμα και τιμες φωτεινοτητας:

 

 

C2IqFWf.jpg

 

 

 

εκφωνηση:

 

 

 

no1fzdO.jpg

 

 

 

υποχρεωτικη η χρηση της switch, οποιος μπορει ας βοηθησει γιατι καιγομαι!!

 

ευχαριστω :)

 

 

Δημοσ.

άμα θες γράψε την εκφώνηση σε απλα ... αγγλικά ή με δικά σου λόγια εξήγησε τι ζητάει να κάνεις γιατί με τα ΣΜΕ ακιδες και διαστρώματα δεν βγάζω άκρη και θα σε βοηθήσω.

 

edit: Η τελευταία πρόταση έχει σχέση με control theory και stability ?

Δημοσ.

άμα θες γράψε την εκφώνηση σε απλα ... αγγλικά ή με δικά σου λόγια εξήγησε τι ζητάει να κάνεις γιατί με τα ΣΜΕ ακιδες και διαστρώματα δεν βγάζω άκρη και θα σε βοηθήσω.

 

edit: Η τελευταία πρόταση έχει σχέση με control theory και stability ?

ΣμΕ = μικροελεγκτης = Arduino

Ακιδα = pin.

Διαστρωμα : Interface

 

Ουσιαστικα στο Arduino (που δε μας λεει ακριβως ποιο ειναι, απλα τον νοιαζει χοντρα χοντρα η υλοποιηση) σε ενα αναλογικο Pin του, το Α2, εχει συνδεθει αισθητηριο εγγυτητας αποστασης, οπως ειναι πχ το TCRT 5000

το οποιο αποτελειται απο εναν εκπομπο υπερυθρης ακτινοβολιας (LED) και ενα phototransistor που λαμβανει αυτην την ακτινοβολια και την μετατρεπει σε ταση με την οποια τροφοδοτει τον  η οποια παει στον arduino. Οταν πχ η ακτινοβολια ειναι μικρη η ταση ειναι μικρη, οταν ειναι μεγαλυτερη η ταση ειναι μεγαλυτερη κ.ο.κ.

 

Το σημα αυτο περναει μεσα απο τον ελεγκτη και ολο αυτο το κυκλωμα ειναι αυτο που βρισκεται "αριστερα" απο το Arduino στο σχημα (με την R = 1k αντισταση προστασιας, Q1 το phototransistor, οποτε ολο το αριστερο τμημα του κυκλωματος αποτελει το αισθητηριο).

 

"δεξια" απο τον arduino ειναι κυκλωμα που οταν η φωτεινοτητα μετρηθει οτι ειναι περισσοτερη απο 132 η λιγοτερο απο 54 επαναφερει το αισθητηριο δινοντας High στο pin D8 του Arduino.

 

Ουσιαστικα ζηταει δηλαδη τον κωδικα που πρεπει να γραψουμε με απαραιτητη συνθηκη να χρησιμοποιηθουν οι μεταβλητες που ζηταει και χρηση της switch case. Στον κωδικα που δινεται στο πλαισιο, εκει που εχει τα ερωτηματικα ειναι τα σημεια που πρεπει να γραφτει κωδικας, αλλα αν υπαρχει κατι που να δουλευει με switch, εστω και λιγο παραλλαγμενο σε σχεση με αυτο που δινει στο πλαισιο, μου κανει μια χαρα.

 

Η τελευταια προταση λογικα με αυτο που λες θα εχει σχεση.

 

υ.γ. σ ευχαριστω για την απαντηση και το ενδιαφερον :)

κι ενα σχετικο βιντεο

 

 

 

https://www.youtube.com/watch?v=iAWslxNC7e4    απ το 6:07 και μετα

 

 

Δημοσ.

Δηλαδη πιο απλα ζηταει το D8 να ειναι high οταν το Α2 εχει ενα ρευμα μεγαλυτερο απο 0.132v ή μικροτερο απο 0.052v?

ΑΝ εχω κατανοησει κι εγω σωστα το κυκλωμα, ναι, αυτο πρεπει να θελει. Οι οριακες τιμες του ρευματος ειναι 20mΑ και 100mΑ και τα εχω υπολογισει απο προηγουμενο ερωτημα εκτος αν εννοεις ταση, που λογικα ταση θα εννοεις :)

Δημοσ.

Τι να πω για την switch...

 

ολο το προγραμμα ειναι αυτο

void loop() 
{
   float in = 5.0f/(float)analogRead(A2);
   if(in < 0.052f || in > 0.132f)
     digitalWrite(D8,HIGH);
   else 
     digitalWrite(D8, LOW);
}
  • Like 1
Δημοσ.

 

Τι να πω για την switch...

 

ολο το προγραμμα ειναι αυτο 

 

....

ευχαριστω :)

 

Απλα ειναι απαραιτητο να γινει με switch και μεταβλητες s1,s2,x1,x2 οπως λεει στην εκφωνηση. Εμενα η λυση σου μου κανει, του προφεσσορα δε θα κανει :P

Δημοσ.

εγω καταλαβα κατι τετοιο :

(οτι και καλα πρεπει ο αισθητηρας να διατηρειται στη μεση. για να δουλεψει ετσι βεβαια πρεπει με καποιο τροπο το κυκλωμα δεξια

να επηρεαζει το αριστερο, κατι το οποιο δεν το βλεπω στη φωτο )

 

 

 

// init:
int state = 1;
int center = (132-54)/2;
int increment = 1;

// loop:
analog = AnalogRead(A2);
switch(state)
{
    // currently in black region.
    // move to white region:
    case 1:
    {
        if(analog<center)
        {
            // still in black region.
            // keep adding:
            analog += increment;
            DigitalWrite(HIGH,D8) // ?????
        }
        if(analog>center)
        {
            // we are now in the white region.
            // change direction:
            state = 2;
        }
    }
    break;

    // currently in white region.
    // move to black region:
    case 2:
    {
        if(analog>center)
        {
            // still in white region.
            // keep subtracting:
            analog -= increment;
            DigitalWrite(LOW,D8) // ?????
        }
        if(analog<center)
        {
            // we are now in the black region.
            // change direction:
            state = 1;
        }
    }
    break;
};
jx5HIi7.png
  • Like 2
Δημοσ.

NewProject αυτο ειναι!

@NewProject & @παπι σας ευχαριστω για το χρονο και τις απαντησεις! :)

τωρα που το βλεπω, ειναι (132 - 54)/2 = 39 οποτε δε μπορω να το αφησω ετσι, θα πρεπει να κανω 54 + 39 η 132 - 39 για να βρω τη μεση που ειναι το 93, αλλα αυτο ειναι το λιγοτερο. Και παλι χιλια ευχαριστω!

  • Like 1
Δημοσ.

ναι οντως , και ο κωδικας που σου εγραψα δεν εχει πλ νοημα αλλα ειδες το σκεπτικο μου.

αυτο τουλαχιστον καταλαβα εγω απο την εκφωνηση ... θα'θελα να'ξερα ποιος τις γραφει αυτες τις ασκησεις ...  :-(

Δημοσ.

Αν σου πω ότι 2 εργαστηριακοί συνεργάτες δε μπορούσαν να το λύσουν; και αυριο δίνω και ενδέχεται να πέσει, ο θεός κι η ψυχη μου :/

Δημοσ.

Αν σου πω ότι 2 εργαστηριακοί συνεργάτες δε μπορούσαν να το λύσουν; και αυριο δίνω και ενδέχεται να πέσει, ο θεός κι η ψυχη μου :/

Απο περιεργεια σε ποια σχολη/τμημα/μαθημα?

Δημοσ.

Αν σου πω ότι 2 εργαστηριακοί συνεργάτες δε μπορούσαν να το λύσουν; και αυριο δίνω και ενδέχεται να πέσει, ο θεός κι η ψυχη μου :/

Εχει κακη διατυπωση, κλασικο ελληνικο αει/τει. 2017 παρα κατι μηνες, δεν μπορουν να φτιαξουν ενα video στο youtube απο το project. Πρεπει να στο πουν γραπτα με γλωσσα που θελει και διευκρινιση.. ανακλαστικη λεει και σου εχει παρενθεση πως εννοει ασπρο που σε επομενη παρενθεση λεει πως τελικα εννοει φωτεινοτητα.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...