kpetros Δημοσιεύτηκε Μάρτιος 23, 2016 #1 Κοινοποίηση Δημοσιεύτηκε Μάρτιος 23, 2016 Το λοιπον , σημερα μου ηρθαν και τα καλωδιακια (ειχα δοκιμασω να κανω τις ενωσεις με δικα μου αυτοσχεδια αλλα μου εσπασαν τα νευρα ) Σε αυτο το τοπικ απλα θα ανεβαζω την "προοδο" μου πανω στο θεμα , δεν εχω ιδεα απο προγραμματισμο εκτος απο την GLOSSA στο λυκειο η οποια ναι μεν ηταν γελοια αλλα με βοηθησε να καταλαβω την λογικη του αθληματος , λιγακι visual basic στο εργαστηριο της σχολης οπου φτιαχναμε κουμπακια και καναμε ασκησης ΛΟΤΤΟ η αριθμομηχανη καθως και καθολου απλη basic την οποια το προηγουμενο βραδυ διαβασα τις εντολες , πηγα εδωσα το μαθημα και περασα με 5αρακι . Οποτε θα βασιστω σε ετοιμο κωδικα του ιντερνετ και -μαγειρεμα- των εντολων για να φτασω στο αποτελεσμα που θελω . Ο τελικος μου σκοπος ειναι η οθονη να αναγραφει 8 εξοδους και εγω να επιλεγω την καθε μια με το joystick κανοντας την ON/OFF οπου με την σειρα του θα ελεγχει και ενα ρελεδακι , ΕΑΝ (που αμφιβαλλω) τα καταφερω , θα ηθελα με καποιον τροπο να φτασω στο να ανοιγω τον θερμοσιφωνα απο μακρυα Ο πρωτος κωδικας που εβαλα ειναι απλος , να ανοιγει και να κλεινει μαι εξοδο καθε δευτερολεπτο , δουλεψε . Δευτερος εβαλα να παρει και τα 8πιν και να τα εναλαζει , δουλεψε . Μετα συνδεσα το joystick , θελω να το κανω με καθε κλικ να μεταβενει ενα output pin μπροστα .........φυσικα ΔΕΝ δουλεψε Ο κωδικας ειναι απλος και τον βρηκα απο το ιντερνετ φυσικα Spoiler // this constant won't change: const int buttonPin = 2; // the pin that the pushbutton is attached to const int ledPin = 13; // the pin that the LED is attached to // Variables will change: int buttonPushCounter = 0; // counter for the number of button presses int buttonState = 0; // current state of the button int lastButtonState = 0; // previous state of the button void setup() { // initialize the button pin as a input: pinMode(buttonPin, INPUT); // initialize the LED as an output: pinMode(ledPin, OUTPUT); // initialize serial communication: Serial.begin(9600); } void loop() { // read the pushbutton input pin: buttonState = digitalRead(buttonPin); // compare the buttonState to its previous state if (buttonState != lastButtonState) { // if the state has changed, increment the counter if (buttonState == HIGH) { // if the current state is HIGH then the button // wend from off to on: buttonPushCounter++; Serial.println("on"); Serial.print("number of button pushes: "); Serial.println(buttonPushCounter); } else { // if the current state is LOW then the button // wend from on to off: Serial.println("off"); } // Delay a little bit to avoid bouncing delay(50); } // save the current state as the last state, //for next time through the loop lastButtonState = buttonState; // turns on the LED every four button pushes by // checking the modulo of the button push counter. // the modulo function gives you the remainder of // the division of two numbers: if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } Εδω ερχεται η πρωτη μου εκλιση για βοηθεια Για καποιο λογο απλα και μονο η παρουσια του χεριου μου πυροδοτει το input pin , τι μπορει να φταιει ? ΕΑΝ πιασω το κουτι του υπολογιστη , τοτε η αποσταση που κανει τα "δικα του" μειωνεται .... η τροφοδοσια του ειναι απο την USB και δεν εχω την φυσα για να του δωσω με μπαταρια Το μονο που δοκιμασα ειναι να το βαλω σε πριζα με τον φορτηστη του κινητου αλλα και παλι μου τα κανει αυτα 4 Link to comment Share on other sites More sharing options...
GriGaS Μάρτιος 23, 2016 #2 Κοινοποίηση Μάρτιος 23, 2016 9 minutes ago, kpetros said: Εδω ερχεται η πρωτη μου εκλιση για βοηθεια ξέχασες το μαγικο mention @Jaco 3 Link to comment Share on other sites More sharing options...
DJD Μάρτιος 23, 2016 #3 Κοινοποίηση Μάρτιος 23, 2016 Καλή αρχή. Κι ο @unseen μπορεί να βοηθήσει 3 Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 23, 2016 Author #4 Κοινοποίηση Μάρτιος 23, 2016 Arigato Βασικα εχω την εντυπωση οτι το προβλημα μου ειναι στην χαλια γειωση του σπιτιου Και σε μια κατασκευη που ειχαμε κανει σχολη με κατι διοδους , ενα 555 και buzzer ειχα παρατηρισει το ιδιο προβλημα -να κανει οτι θελει- το οποιο το φτιαξα βαζοντας μπαταρια οποτε παιζει πολυ αυτο το σεναριο .... Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 24, 2016 Author #5 Κοινοποίηση Μάρτιος 24, 2016 (edited) Χθες ψιλοαπογοητευτηκα με την χαζομαρα και ετσι λοιπον σημερα ειπα να κοιταξω τι γινεται με το joystick , βρηκα αυτην την σελιδα Εχοντας καταλαβει πως δουλευει ο εντοπισμος της θεσης του συναντησα τον κωδικα του τυπου οπου δουλευει τα κουμπακια πανω στο shield του .... ναι μεν το δικο μου ειναι διαφορετικο ,διαπιστωσα το εξης Παράθεση pinMode(PIN_BUTTON_SELECT, INPUT); digitalWrite(PIN_BUTTON_SELECT, HIGH); Εγω εβαζα μονο pinMode για να δηλωσω αμα προκειτε για εισοδο η εξοδο αλλα αποτι φαινεται χρειαζεται να γινεται καθε φορα και μια αρχικοποιηση της καταστασης του pin Με λιγο πειραγμα εφτιαξα τον παρακατω Spoiler // Store the Arduino pin associated with each input // Select button is triggered when joystick is pressed const byte PIN_BUTTON_SELECT = 2; const byte RELE = 13; int buttonState = 0; void setup() { Serial.begin(9600); pinMode(RELE , OUTPUT); pinMode(PIN_BUTTON_SELECT, INPUT); digitalWrite(PIN_BUTTON_SELECT, HIGH); digitalWrite(RELE , HIGH); } void loop() { Serial.print("s:"); Serial.print(digitalRead(PIN_BUTTON_SELECT)); Serial.print(" "); buttonState = digitalRead(PIN_BUTTON_SELECT); Serial.println(); if (buttonState == HIGH) { digitalWrite(RELE , LOW); }else { digitalWrite(RELE , HIGH); } } Και τανταν!!!! δουλεψε το ασφαλμενο χθεσινο προβλημα Επομενο βημα να φτιαξω counter ωστε καθε κλικ να προχοραει ενα rele μπροστα , ισως να δοκιμασω να σεταρω και Χ-Υ axis ωστε να τα ελεγχω ολα με βαση που κοναει το joystick Για τους γνωστες τωρα ομως ..... Παράθεση if (buttonState == HIGH) { digitalWrite(RELE , LOW); }else { digitalWrite(RELE , HIGH); } Με την μονη συνθηκη το χω , τι γινεται ομως αμα θελω να κανω 2πλη συγκριση ? Δηλαδη του τυπου if (xaxis == 1) AND (yaxis == -1) { Έγινε επεξεργασία Μάρτιος 24, 2016 από kpetros 1 Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 25, 2016 Author #6 Κοινοποίηση Μάρτιος 25, 2016 Χθες εκανα μια σχετικη προοδο κανοντας το να δουλεψει σωστα στην περιπτωση -παταω κλικ , προχωραει ρελε - Για αυτην την δουλεια εβαλα το counter οπου μετραει απο το 0 εως το 7 και καθε φορα χρησημοποιω αυτην την "θεση" ωστε να ανοιξει και το σωστο ρελεδακι , αντιστοιχα για να κλεισω το προηγουμε χρησημοποιω το counter-1 . Οταν φτασει στο 8 το κανω επαναφορα στον αριθμο 0 , παρολαυτα αντιμετοπησα το εξης θεμα το οποιο απλα ΔΕΝ ΣΤΕΚΕΙ . Αφηνοντας το counter να μπει στον αριθμο 8 , στην επομενη επαναληψη ουσιαστηκα θα ανοιξει το ρελε[8] το οποιο ... ΔΕΝ ΥΠΑΡΧΕΙ και απλα θα κλεισει το ρελε[7] . ΟΜΩΣ μπαινοντας στο [8] μου ανοιγε το ρελε[3] !!!! (πιθανον επιδη ειναι συνδεμενο στην θεση 8 του arduino .... περιεργα πραματα . Τα φτιαξα ομως βαζοντας ακομα ενα if Τελος μαλλον δεν υπαρχει διπλη συνθηκη if .... Spoiler const int Koumpi = 2; const int RelayCount = 8; int Rele[] = { 6, 7, 8, 9, 10, 11, 12, 13 }; int buttonState = 0; int lastButtonState =0; int counter = 0; void setup() { pinMode(Koumpi, INPUT); digitalWrite(Koumpi, HIGH); for (int thisRelay = 0; thisRelay < RelayCount; thisRelay++) { pinMode(Rele[thisRelay], OUTPUT); digitalWrite(Rele[thisRelay] , HIGH); } } void loop() { buttonState = digitalRead(Koumpi); if (buttonState != lastButtonState) { if (buttonState == LOW) { if (counter == 8) { digitalWrite(Rele[7] , HIGH); counter =0; } digitalWrite(Rele[counter] , LOW); digitalWrite(Rele[counter-1] , HIGH); counter++; delay(100); } } lastButtonState = buttonState; } Spoiler const byte PIN_ANALOG_X = 0; const byte PIN_ANALOG_Y = 1; const int X_THRESHOLD_LOW = 450; const int X_THRESHOLD_HIGH = 550; const int Y_THRESHOLD_LOW = 450; const int Y_THRESHOLD_HIGH = 550; int x_position; int y_position; int x_direction; int y_direction; const int RelayCount = 8; int Rele[] = { 6, 7, 8, 9, 10, 11, 12, 13 }; void setup() { for (int thisRelay = 0; thisRelay < RelayCount; thisRelay++) { pinMode(Rele[thisRelay], OUTPUT); digitalWrite(Rele[thisRelay] , HIGH); } Serial.begin(9600); } void loop () { x_direction = 0; y_direction = 0; x_position = analogRead(PIN_ANALOG_X); y_position = analogRead(PIN_ANALOG_Y); if (x_position > X_THRESHOLD_HIGH) { x_direction = 1; } else if (x_position < X_THRESHOLD_LOW) { x_direction = -1; } if (y_position > Y_THRESHOLD_HIGH) { y_direction = 1; } else if (y_position < Y_THRESHOLD_LOW) { y_direction = -1; } if (x_direction == -1) { if (y_direction == -1) { digitalWrite(Rele[0] , LOW); } else if (y_direction == 0) { digitalWrite(Rele[1] , LOW); } else { // y_direction == 1 digitalWrite(Rele[2] , LOW); } } else if (x_direction == 0) { if (y_direction == -1) { digitalWrite(Rele[3] , LOW); } else if (y_direction == 0) { Serial.println("centered"); } else { // y_direction == 1 digitalWrite(Rele[4] , LOW); } } else { // x_direction == 1 if (y_direction == -1) { digitalWrite(Rele[5] , LOW); } else if (y_direction == 0) { digitalWrite(Rele[6] , LOW); } else { // y_direction == 1 digitalWrite(Rele[7] , LOW); } } delay(50); for (int thisRelay = 0; thisRelay < RelayCount; thisRelay++) { pinMode(Rele[thisRelay], OUTPUT); digitalWrite(Rele[thisRelay] , HIGH); } } Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 28, 2016 Author #7 Κοινοποίηση Μάρτιος 28, 2016 @unseen Επειδη σε ενα προηγουμενο ποστ ειχες ανεβασει πως ειχες δουλεψει με ακριβος την ιδια οθονουλα , θα μπορουσες να με καθοδηγισεις λιγο ? δοκιμασα κατι libraries απο adafruit αλλα δεν μου δουλευει .... Link to comment Share on other sites More sharing options...
unseen Μάρτιος 28, 2016 #8 Κοινοποίηση Μάρτιος 28, 2016 http://www.devacron.com/add-a-tft-display-to-your-arduino-projects-1-8-tft-spi-128x160-2/ Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 28, 2016 Author #9 Κοινοποίηση Μάρτιος 28, 2016 @unseen Σωραιος αλλα μου βγαζει προβλημα Spoiler Arduino: 1.6.7 (Windows 10), Board: "Arduino/Genuino Uno" C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino: In function 'void loop()': C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:52:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Universal TFT Lib.", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:55:42: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("QDtech Co.LTD", LEFT, 114); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:56:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("(C)2013", RIGHT, 114); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:66:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw crosshairs", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:82:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw sin/cos/tan.", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:84:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Sin", 5, 15); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:91:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Cos", 5, 27); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:98:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Tan", 5, 39); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:118:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw moving sinewave", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:149:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw fill rectangles", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:183:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("fill round rectangle", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:217:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw fill circles", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:251:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw line in pattern", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:283:48: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw random circles", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:303:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw random rectangl", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:324:49: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw round rectangle", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:341:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw random Line", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:361:46: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Draw random point", CENTER, 1); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:379:40: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("That's it!", CENTER, 20); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:380:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Restarting in a", CENTER, 45); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:381:44: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("few seconds...", CENTER, 57); ^ C:\Users\Petros\Desktop\1.8SPI Test Code for ArduinoUNO\QDtech_Demo_160x128_Serial_S6D02A1\QDtech_Demo_160x128_Serial_S6D02A1.ino:385:47: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] myGLCD.print("Runtime: (msecs)", CENTER, 103); ^ C:\Users\Petros\Desktop\arduino-1.6.7\libraries\UTFT\DefaultFonts.c:14:14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))' fontdatatype SmallFont[1144] PROGMEM={ ^ C:\Users\Petros\Desktop\arduino-1.6.7\libraries\UTFT\DefaultFonts.c:118:14: error: variable 'BigFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))' fontdatatype BigFont[3044] PROGMEM={ ^ C:\Users\Petros\Desktop\arduino-1.6.7\libraries\UTFT\DefaultFonts.c:227:14: error: variable 'SevenSegNumFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))' fontdatatype SevenSegNumFont[2004] PROGMEM={ ^ exit status 1 Error compiling. This report would have more information with "Show verbose output during compilation" enabled in File > Preferences. Επεισης σε κατι αλλα ετοιμα , κατα τον ελεγχο μου βγαζουν το 'conv2d' was not declared in this scope Απο αντιστασεις ειχα 1,2ΚΩ αλλα δεν νομιζω να κανουν και μεγαλη διαφορα Link to comment Share on other sites More sharing options...
unseen Μάρτιος 28, 2016 #10 Κοινοποίηση Μάρτιος 28, 2016 δοκιμασε με ενα απο τα demo της βιβλιοθηκης για αρχη Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 28, 2016 Author #11 Κοινοποίηση Μάρτιος 28, 2016 file > examples > utft > arduino Οτι και να επιλεξω παντα θα μου βγαζει error compiling Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 28, 2016 Author #12 Κοινοποίηση Μάρτιος 28, 2016 ΟΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠΠ Κατι φαινεται πως δουλεψε (απο κατι libraries του adafruit ST7735 AS) Link to comment Share on other sites More sharing options...
kpetros Μάρτιος 28, 2016 Author #13 Κοινοποίηση Μάρτιος 28, 2016 (edited) Και μετα απο 5 ωρες , 2 match (ευτυχος το ενα ηταν win ) και λιγη μελετη . Καταφερα να μαγειρεψω ολα τα συστατικα και να φτασω στο ΤΕΛΙΚΟ επιθυμητο αποτελεσμα Ειλικρινα δεν το περιμενα τοσο ευκολο , ισως να ηταν το φιλικο περιβαλλον και ο αφθονος ετοιμος κωδικας , ισως να ηταν που στο σχολειο μου αρεσε ο προγραμματισμος και ειχα πιασει το νοημα . Μετα απο αυτο που σε λιγοτερο απο 1 μερα (ε ναι , καπου τοσο ασχολιθηκα συνολικα ) το ολοκληρωσα , δεν μου κανει καθολου εντυπωση που ανα καιρους βγαινουν κατι αρθρα τυπου "12 χρονος εφτιαξε το 3ο ματι για τους τυφλους " και ο τυπος απλα εχει παρει ενα arduino με εναν αισθητιρα αποστασης και ντανταν Το προγραμμα μου λοιπον εχει την εξης λογικη Καταχωρω τα 8 (εμ....7 , θα εξηγησω στο τελος) ρελεδακια και τα σεταρω να ειναι HIGH για αρχη , επισης με μια επαναληψη στινω το αρχικο περιβαλλον δηλαδη να φαινονται τα διαθεσιμα ρελε καθως και ενα βελακι για την "πλοηγηση". Χρησημοποιω την μεταβλητη axonasX για να δω που βρισκομαι , καθε φορα που παω το joystick επανω , προσθετο +1 ενω οταν παει κατω αφαιρω -1 . Οταν φτασει στα "ορια" απλα τον επαναφερω . Με αυτον τον τροπο και μαι απλη συνθηκη κουναω το βελακι Παράθεση ("<==",120,(axonasX*15),2); Το πρωτο συμβολο ειναι το βελακι , το 120 ειναι ο αριθμος πιξερ στον οριζοντιο αξονα και η πραξη διπλα ειναι στον καθετο αξονα , τελςο το 2 ειναι το μεγεθος γραμματοσειρας . Εφοσον το βελακι εχει κουνηθει , στην οθονη παραμενουν και ολες οι προηγουμενες θεσεις του ...... με τον πιο απλο "εξαφανισω" την υπαρξη τους ξανατυπωνοντας το ιδιο text σε full μαυριλα Παράθεση tft.setTextColor(ST7735_BLACK, ST7735_BLACK); tft.drawCentreString("<==",120,((axonasX-1)*15),2); Τελος αφου ξερω (το προγραμμα ξερει ) το που βρισκομαι στον axonasX , φτιαχνω ακομα μια συνθηκη οπου οταν το joystick κουνηθει αριστερα , να ανοιξει το ρελε ενω δεξια να το κλεισει . Τοσο απλα !!!!!!!!!!!!!!!!!!!!!!!! Εφαγα ολα τα pins απο το arduino ΙΣΑ ΙΣΑ , ομως για καποιο λογο το pin D12 δεν μου δινει εξοδο (ακομα και αμα απλα του γραψω να ποσταρει LOW για να δω κινηση ) οποτε εχω 7 ενεργα ρελεδακια @unseen Μηπως ξερεις κατι πανω σε αυτο ? Για αρχη θα ψαξω να βρω αποστατες για να βιδωσω ολη μου την δημιουργια σε κανα ξυλο . Μετα με κοβω να παραγγελνω arduino mega και αρκετους αισθητηρες!!!! Spoiler const byte PIN_ANALOG_X = 0; const byte PIN_ANALOG_Y = 1; const int X_THRESHOLD_LOW = 450; const int X_THRESHOLD_HIGH = 550; const int Y_THRESHOLD_LOW = 450; const int Y_THRESHOLD_HIGH = 550; int x_position; int y_position; int x_direction; int y_direction; #define sclk 13 #define mosi 11 #define cs 9 #define dc 8 #define rst 7 #include <Adafruit_GFX_AS.h> #include <Adafruit_ST7735_AS.h> #include <SPI.h> Adafruit_ST7735_AS tft = Adafruit_ST7735_AS(cs, dc, rst); unsigned long targetTime = 0; byte red = 31; byte green = 0; byte blue = 0; byte state = 0; unsigned int colour = red << 11; int axonasX =0; int axonasY =0; const int RelayCount = 7; int Rele[] = { 2, 3, 4, 5, 6, 7, 10 }; void setup() { for (int thisRelay = 0; thisRelay < RelayCount; thisRelay++) { pinMode(Rele[thisRelay], OUTPUT); digitalWrite(Rele[thisRelay] , HIGH); } tft.initR(INITR_BLACKTAB); tft.setRotation(1); tft.fillScreen(ST7735_BLACK); for (int i = 0; i < 7; i++) { tft.setTextColor(ST7735_GREEN, ST7735_BLACK); tft.drawCentreString("anoixto",30,i*15,2); } tft.setTextColor(ST7735_WHITE, ST7735_WHITE); tft.drawCentreString("<==",120,0,2); tft.setTextColor(ST7735_BLUE, ST7735_BLUE); tft.drawCentreString("THE LAB kpetros",60,110,2); } void loop() { x_direction = 0; y_direction = 0; x_position = analogRead(PIN_ANALOG_X); y_position = analogRead(PIN_ANALOG_Y); if (x_position > X_THRESHOLD_HIGH) { axonasX++; if (axonasX>6) { axonasX =0; tft.setTextColor(ST7735_BLACK, ST7735_BLACK); tft.drawCentreString("<==",120,((6)*15),2); } tft.setTextColor(ST7735_WHITE, ST7735_WHITE); tft.drawCentreString("<==",120,(axonasX*15),2); tft.setTextColor(ST7735_BLACK, ST7735_BLACK); tft.drawCentreString("<==",120,((axonasX-1)*15),2); } else if (x_position < X_THRESHOLD_LOW) { axonasX--; if (axonasX<0) { axonasX =6; tft.setTextColor(ST7735_BLACK, ST7735_BLACK); tft.drawCentreString("<==",120,((0)*15),2); } tft.setTextColor(ST7735_WHITE, ST7735_WHITE); tft.drawCentreString("<==",120,(axonasX*15),2); tft.setTextColor(ST7735_BLACK, ST7735_BLACK); tft.drawCentreString("<==",120,((axonasX+1)*15),2); } if (y_position > Y_THRESHOLD_HIGH) { tft.setTextColor(ST7735_GREEN, ST7735_BLACK); tft.drawCentreString(" anoixto ",30,(axonasX*15),2); digitalWrite(Rele[axonasX] , HIGH); }else if (y_position < Y_THRESHOLD_LOW) { tft.setTextColor(ST7735_RED, ST7735_BLACK); tft.drawCentreString(" kleisto ",30,(axonasX*15),2); digitalWrite(Rele[axonasX] , LOW); } delay(200); } Έγινε επεξεργασία Μάρτιος 28, 2016 από kpetros 4 Link to comment Share on other sites More sharing options...
kpetros Απρίλιος 12, 2016 Author #14 Κοινοποίηση Απρίλιος 12, 2016 Επιστροφη με ερωτησεις Εχω παραγγειλει ενα bluetooth module , ο σκοπος ειναι να κανω οτι εκανα απλα με το κινητο αυτην την φορα .Θα δειξει πως θα παει το πραμα οταν ερθει , εχω την εντυπωση πως θα μου βγει η πιστη να το κανω να δουλεψει . Για τους γνωστες παρακαλω ομως Καθως εψαχνα , βρηκα αυτο το board και ενα spark core που λεει πως ειναι για internet of things .... η αληθεια ειναι πως δεν εχω ποιασει το concept αυτης της προοθησης αλλα σαν board μου φαινεται πως εχει παρομοιους ακροδεκτες και επισης wifi Πιστευω πως θα καταφερω να κανω το arduino να μου δειχνει στοιχεα στο κινητο μου . ΟΜΩΣ μετα απο αυτο θα ηθελα να το παω λιγο πιο μακρυα και δεν ειναι αλλο απο το να μπορω να εχω προσβαση μεσω ιντερνετ , μια απλη σελιδα στο browser οπου να κανω την δουλεια μου ... Εχεις ασχολιθει κανεις πανω σε αυτο ? Link to comment Share on other sites More sharing options...
Asxetius Οκτώβριος 7, 2017 #15 Κοινοποίηση Οκτώβριος 7, 2017 Tι έγινε με το θέμα του bluetooth? Link to comment Share on other sites More sharing options...
kpetros Οκτώβριος 7, 2017 Author #16 Κοινοποίηση Οκτώβριος 7, 2017 (edited) πριν 1 ώρα, το μέλος Asxetius έγραψε: Tι έγινε με το θέμα του bluetooth? Το κουμπωσα , δουλεψε κανονικα με τον κωδικα που βρηκα . Απλα το αρνητικο ειναι πως οι εφαρμογες που εχει στο playstore δεν ειναι και πολυ παραμετροποιησημες . Εμβελεια παραδοξος εχει καλη , βγηκα στο πανω στενο και ακομα το εβλεπε . Έγινε επεξεργασία Οκτώβριος 7, 2017 από kpetros Link to comment Share on other sites More sharing options...
sotiris Οκτώβριος 7, 2017 #17 Κοινοποίηση Οκτώβριος 7, 2017 (edited) Αν και παλιό το thread, εδώ στο supplementary έχω τον κώδικα που χρησιμοποίησα για ένα project στο διδακτορικό μου που έφτιαξα ένα μικρό συστηματάκι με 3 arduino: https://link.springer.com/article/10.1007/s00723-015-0680-5 https://static-content.springer.com/esm/art%3A10.1007%2Fs00723-015-0680-5/MediaObjects/723_2015_680_MOESM1_ESM.docx Το μικρό κόστος βοηθάει να βάζεις πολλά μικρά arduin-άκια ξέχωρα για κάθε λειτουργία από ένα ακριβό σύστημα με έναν ακριβό μc. Αν θέλει κάποιος να φτιάξει οθόνη αφής, έχω τον κώδικα έτοιμο που απλά στέλνει μέσω rs232 ένα χαρακτήρα στο "κεντρικό" arduino (που τρέχει ένα switch case αν θυμάμαι καλά) και από εκεί κάνει τις διάφορες επιλογές με τα ρελέ και τις χρονοκαθυστερήσεις. Λογικά σε μη time sensitive εφαρμογές μπορεί να τρέξουν όλα σε ένα arduino mega, εμείς παίζαμε σε τάξη μεγέθους 100 ms και δεν το ρίσκαρα να το βάλω στο ίδιο με την οθόνη. Για επόμενα project είχα πάρει due με 7άρα οθόνη (αυτό εκεί που έχω τον κώδικα είναι mega με 3.2) αλλά δεν έφτιαξα κάτι τελικά. Έγινε επεξεργασία Οκτώβριος 7, 2017 από sotiris Link to comment Share on other sites More sharing options...
kpetros Οκτώβριος 7, 2017 Author #18 Κοινοποίηση Οκτώβριος 7, 2017 (edited) πριν 24 λεπτά, το μέλος sotiris έγραψε: Αν και παλιό το thread, εδώ στο supplementary έχω τον κώδικα που χρησιμοποίησα για ένα project στο διδακτορικό μου που έφτιαξα ένα μικρό συστηματάκι με 3 arduino: https://link.springer.com/article/10.1007/s00723-015-0680-5 https://static-content.springer.com/esm/art%3A10.1007%2Fs00723-015-0680-5/MediaObjects/723_2015_680_MOESM1_ESM.docx Το μικρό κόστος βοηθάει να βάζεις πολλά μικρά arduin-άκια ξέχωρα για κάθε λειτουργία από ένα ακριβό σύστημα με έναν ακριβό μc. Αν θέλει κάποιος να φτιάξει οθόνη αφής, έχω τον κώδικα έτοιμο που απλά στέλνει μέσω rs232 ένα χαρακτήρα στο "κεντρικό" arduino (που τρέχει ένα switch case αν θυμάμαι καλά) και από εκεί κάνει τις διάφορες επιλογές με τα ρελέ και τις χρονοκαθυστερήσεις. Λογικά σε μη time sensitive εφαρμογές μπορεί να τρέξουν όλα σε ένα arduino mega, εμείς παίζαμε σε τάξη μεγέθους 100 ms και δεν το ρίσκαρα να το βάλω στο ίδιο με την οθόνη. Για επόμενα project είχα πάρει due με 7άρα οθόνη (αυτό εκεί που έχω τον κώδικα είναι mega με 3.2) αλλά δεν έφτιαξα κάτι τελικά. Το εχεις χρησημοποιησει σε κατι επισημο (αν επιτρεπεται να το βαλεις σε δουλεια ? Θελω να βαλω κατι PLC για γελοιες λειτουργιες το οποια θα εβγαινε σε 10 γραμμες κωδικα μεσα στο arduino ..... Έγινε επεξεργασία Οκτώβριος 7, 2017 από kpetros Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now