# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Φούρνος για SMD, BGA, με οθόνη LCD TFT σε ARDUINO

## misterno

IMAG0223.jpgIMAG0222.jpgIMAG0221.jpgIMAG0220.jpgIMAG0225.jpgIMAG0224.jpg
Φίλοι γεια σας.
Ενδιαφέρομαι να φτιάξω ένα σύστημα φούρνου για SMD, BGA με ένδειξη καμπύλης προφίλ σε οθόνη TFT LCD.
Μίλησα και με τον φίλο @manolena σχετικά και αποφάσισα να ανοίξω αυτό το νήμα για συζήτηση και τελική κατασκευή.
Παραθέτω φωτογραφίες από την μέχρι τώρα πορεία της κατασκευής.
Θα χρησιμοποιεί απλά υλικά όπως ηλεκτρική αντίσταση από ηλεκτρικό μάτι, ξύλα και αλουμινένια στηρίγματα και τέλος πλακέτα
arduino με LCD shield.
Θα χρησιμοποιηθεί LCD για να υπάρχει γραφική απεικόνιση των καμπύλων εργασίας.
Η 1η θα δείχνει την επιθυμητή και η 2η την πραγματική θερμοκρασία.
Ως μετατροπέας θερμοκρασίας θα χρησιμοποιηθεί ένα πλακετάκι με τον γνωστό MAX6675-K και αισθητήριο ένα K θερμοστοιχείο για τους 400C.
Ξεκινάμε και τα λέμε στην πορεία.  :Rolleyes:

----------

agis68 (31-08-16), 

Panoss (11-08-16)

----------


## leosedf

Γιάννη δεν έχω καταλάβει τι θα κάνει αυτό.
Πάντως για καφέ φαίνεται καλό  :Lol: 
Προθερμαντήρα θέλεις να κάνεις?

----------


## chip

το μάτι λογικά είναι για προθερμαντήρας και για το reflow να υποθέσω θα βάλεις αντιστάσεις από φουρνάκι?
μήπως θα ήταν πιο εύκολο αν άρχιζες έχοντας σαν βάση ένα (παλαιό) φουρνάκι?
έχεις δει καθόλου την περίπτωση χρήσης IR elements από αυτά που βάζουν σε θερμάστρες αλογόνου? (δεν ξέρω βέβαια σε τι θερμοκρασία μπορεί να φτάσουν την πλακέτα... αλλά αφού υπάρχουν φουρνάκια με λάμπες αλογόνου λογικά με 3-4 στοιχεία ίσως να γίνεται δουλειά...)
http://www.bestprice.gr/search?q=%CE...80%CE%B1%CF%82

----------


## betacord85

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

----------


## misterno

Παιδιά από τις γρήγορες απαντήσεις σας φαίνεται ότι υπάρχει αρκετό ενδιαφέρον!
Πράγματι πρόκειται για προθερμαντήρα. Ο τίτλος είναι λάθος συνεπώς λόγω κεκτημένης ταχύτητας.
Την κατασκευή την έχει κάνει φίλος και δουλεύει σαν προθερμαντήρας για SMDμ BGA με πολύ καλά αποτελέσματα.
Απλά εγώ θέλω να παρέμβω προσθέτοντας μικροελεγκτή με απεικόνιση.

Edit:
Με το κόλπο αυτό προθερμαίνεις τοπικά το τσιπάκι και έτσι δεν υπερθερμαίνονται τα κοντινά εξαρτήματα.
Δοκιμασμένα πράγματα σας λέω  :Wink:

----------


## Panoss

Μήπως να άλλαζε κάποιος τον τίτλο από 'φούρνο' σε 'προθεμαντήρα ' ώστε να το βρίσκουμε στην αναζήτηση;
Όντως πολύ ενδιαφέρον Γιάννη.
Στο τέλος βάλε και βίντεο να τον δούμε εν δράσει!

----------


## manolena

Γιάννη, 

Ομολογώ πως μπερδεύτηκα κι εγώ λίγο, χαχαχαααα!!! Είχα την εντύπωση πως θα πραγματευόσουν κανονικό reflow!!!!

----------


## Fire Doger

Επειδή κάνω κάτι παρόμοιο σου έχω έτοιμο τον κώδικα για τα γραφήματα  :Biggrin: 
Άξονες C-t με grid και τιμές (ίσως χρειαστεί να βγάλεις μερικές, το έκανα για 480x320 οθόνη αλλά όχι full screen, ίσως σε πάρει οριακά)
Και την μέθοδο για να τυπώνεις array (1sec =1 τιμή στο γράφημα)




```
void TFT_Print_Grid() {
  tft.fillRect(Graph_X, Graph_Y, Graph_Width, Graph_Heigh, Graph_BG); //Graph bg
  //Graph Boarders
  tft.drawFastHLine(Graph_X - 1,  Graph_Heigh + Graph_Y - 1,  Graph_Width + 1,  WHITE);
  tft.drawFastHLine(Graph_X - 1,  Graph_Heigh + Graph_Y,  Graph_Width + 1,  WHITE);
  tft.drawFastVLine(Graph_X - 2,  Graph_Y,  Graph_Heigh + 1,  WHITE);
  tft.drawFastVLine(Graph_X - 1,  Graph_Y,  Graph_Heigh + 1,  WHITE);

  tft.setTextSize(1);
  tft.setTextColor(WHITE, BLACK);

  for (uint8_t i = 20; i > 0; i--) { //Fast code time line
    tft.drawFastVLine(Graph_X + i * 20,  Graph_Heigh + Graph_Y + 1,  3,  WHITE);
    tft.drawFastVLine(Graph_X + i * 20 - 1,  Graph_Heigh + Graph_Y + 1,  3,  WHITE);
    tft.drawFastVLine(Graph_X + i * 20 - 2,  Graph_Heigh + Graph_Y + 1,  3,  WHITE);

    //Grid
    tft.drawFastVLine(Graph_X + i * 20 - 1,  Graph_Y + 2 ,  Graph_Heigh - 3,  BLACK);

    //Text
    if (i < 5)
      tft.setCursor(Graph_X + i * 20 - 7,  Graph_Heigh + Graph_Y + 5);
    else
      tft.setCursor(Graph_X + i * 20 - 10,  Graph_Heigh + Graph_Y + 5);
    tft.print(i * 10 * 2);
  }

  for (uint8_t i = 10; i > 0; i--) { //Fast code Temp line
    tft.drawFastHLine(Graph_X - 5,   Graph_Heigh + Graph_Y - i * 20,  3,  WHITE);
    tft.drawFastHLine(Graph_X - 5,   Graph_Heigh + Graph_Y - i * 20 - 1,  3,  WHITE);
    tft.drawFastHLine(Graph_X - 5,   Graph_Heigh + Graph_Y - i * 20 + 1,  3,  WHITE);

    //Grid
    tft.drawFastHLine(Graph_X ,   Graph_Heigh + Graph_Y - i * 20,  Graph_Width - 2,  BLACK);

    //Text
    if (i < 3)
      tft.setCursor(Graph_X - 19,  Graph_Heigh + Graph_Y - i * 20 - 3);
    else
      tft.setCursor(Graph_X - 25,  Graph_Heigh + Graph_Y - i * 20 - 3);
    tft.print(i * 10 * 4);

    //0 point
    tft.setCursor(Graph_X - 8,  Graph_Heigh + Graph_Y + 4);
    tft.print("0");

    //Line Explanation
    tft.setCursor(Graph_X + Graph_Width + 5,  Graph_Heigh + Graph_Y - 4);
    tft.print("Time(s)");
    tft.setCursor(Graph_X - 30,   Graph_Y - 12);
    tft.print("Temp(C)");
  }
}

void TFT_Print_Graph() {
  for (uint16_t i = 0; i < sizeof(GraphData) / 2; i++) {
    tft.drawPixel(Graph_X + i, Graph_Y + Graph_Heigh - 2 - GraphData[i], RED);
    //bigger line
    tft.drawPixel(Graph_X + i, Graph_Y + Graph_Heigh - 2 - GraphData[i] - 1, RED);
    tft.drawPixel(Graph_X + i + 1, Graph_Y + Graph_Heigh - 2 - GraphData[i], RED);
    tft.drawPixel(Graph_X + i + 1, Graph_Y + Graph_Heigh - 2 - GraphData[i] - 1, RED);
  }


}
```


Το print είναι 2x2 pixel για κάθε τιμή για να βγαίνει λίγο ποιο παχιά η γραμμή.
Δεν είναι για ξερό copy paste, δεν σχεδιάστηκε ως βιβλιοθήκη. Απλώς είσαι τυχερός και αντί να βάλω ξερές διαστάσεις τα έβαλα με πράξεις και μπορείς να το κουμπώσεις εύκολα στις διαστάσεις σου. :Wink:

----------

manolena (11-08-16)

----------


## Fire Doger

> Γιάννη, 
> 
> Ομολογώ πως μπερδεύτηκε κι εγώ λίγο, χαχαχαααα!!! Είχα την εντύπωση πως θα πραγματευόσουν κανονικό reflow!!!!



Εσύ δες εδώ να βγάλεις το άχτι σου. :Biggrin:

----------

manolena (11-08-16)

----------


## manolena

surprised.jpg

Εσύ, πλάκα κάνεις!!!!! Τι είναι αυτό; Σοβαρά τώρα;

----------


## manolena

> Εσύ δες εδώ να βγάλεις το άχτι σου.



Τι είπες τώρα!!!!!!

Υποβαλλω τα σέβη μου. Πάντα εν σοφία εποιησας...

----------


## Fire Doger

Τσούκου τσούκου το δουλεύω, αργεί λίγο λόγο του ότι κάνω και τα γραφικά παράλληλα (κουμπάκια σκιές κλπ).
Αφού έγιναν οι δοκιμές ότι μπορεί να κολλήσει το συμβατικό φουρνάκι grill (~1kw) και μου πρότεινε ένας καθηγητής να το κάνουμε πτυχιακή λογικά θα πάει full full extra.
Μόλις ολοκληρώνω κάτι το αναβαθμίζω στο Git.

*Το διάβασμα bitmap απ' την SD από εσένα το πήρα, θα μπεις βιβλιογραφία :Biggrin:

----------


## misterno

Τελικά τώρα που το σκέφτομαι, τίποτα δεν εμποδίζει το όλο σύστημα να προσαρμοστεί σε φουρνάκι SMD. Εγώ διαθέτω το LCD TFT με το ILI9341 και ο κώδικας
αρχικοποίησης θα πρέπει να περιέχει την κατάλληλη εντολή. π.χ

#include <UTFT.h>


UTFT myGLCD(ILI9341_16,38,39,40,41);   // ILI9341


void setup() 
...κλπ
Βρήκα κάτι πολύ αξιόλογο ΕΔΩ
και θα προσπαθήσω να προσαρμόσω τον κώδικα μου στον ήδη υπάρχον.
*EDIT: Προσπάθησα να κάνω compile τον κώδικα αλλά παίρνω Error:
*
In file included from C:\Program Files (x86)\Arduino\libraries\ReflowController\ReflowCon  troller.ino:21:0:


C:\Program Files (x86)\Arduino\libraries\Menu/Menu.h:33:22: fatal error: WProgram.h: No such file or directory


 #include "WProgram.h"


                      ^


compilation terminated.

Μάνο βοήθεια! *Ο κώδικας μπήκε σε συνημμένο*

----------


## manolena

Αντικατάστησε τη γραμμή

#include "WProgram.h"

...με 

#include "Arduino.h"

----------


## misterno

Καλημέρα σας.
*Το τελικό project θα είναι αυτό:
*IMG_3486.jpgIMG_3485.jpgIMG_3484.jpg
Έτοιμο σε λειτουργία με την άδεια του φίλου μου σας παραθέτω τις φωτογραφίες από χθεσινή επέμβαση σε Motherboard.
Δείτε λεπτομέρεια, την απόσταση της κάμερας που "Βλέπει" τα pads του BGA αν "ψήνονται" και λιώνουν σωστά!

Το θέμα είναι να μπει μικροελεγκτής για να έχουμε έλεγχο της καμπύλης θέρμανσης αλλά και οπτική ένδειξη αυτής. 

@manolena: Μάνο, το έκανα το περνάει έβαλα και τις άλλες βιβλιοθήκες που έλειπαν αλλά μου βγάζει μετά ένα σωρό λάθη που αφορούν το Menu.h π.χ



```
ARNING: Spurious .github folder in 'Adafruit ST7735 Library' libraryReflowController:126: error: 'Engine' in 'class Menu' does not name a type


 Menu::Engine Engine;


 ^


ReflowController:169: error: 'Item_t' in 'class Menu' does not name a type


   const Menu::Item_t *mi;


         ^


ReflowController:226: error: 'Action_t' in 'class Menu' does not name a type


 bool menuExit(const Menu::Action_t a) {


                     ^


ReflowController:226: error: ISO C++ forbids declaration of 'a' with no type [-fpermissive]


 bool menuExit(const Menu::Action_t a) {


                                    ^


ReflowController:235: error: 'Action_t' in 'class Menu' does not name a type


 bool menuDummy(const Menu::Action_t a) {


                      ^


ReflowController:235: error: ISO C++ forbids declaration of 'a' with no type [-fpermissive]


 bool menuDummy(const Menu::Action_t a) {


                                     ^


ReflowController:248: error: 'Item_t' in 'class Menu' does not name a type


 void getItemValuePointer(const Menu::Item_t *mi, double **d, int16_t **i) {


                                ^


ReflowController:248: error: ISO C++ forbids declaration of 'mi' with no type [-fpermissive]


 void getItemValuePointer(const Menu::Item_t *mi, double **d, int16_t **i) {


                                              ^


ReflowController:263: error: 'Item_t' in 'class Menu' does not name a type


 bool isPidSetting(const Menu::Item_t *mi) {


                         ^


ReflowController:263: error: ISO C++ forbids declaration of 'mi' with no type [-fpermissive]


 bool isPidSetting(const Menu::Item_t *mi) {


                                       ^


ReflowController:267: error: 'Item_t' in 'class Menu' does not name a type


 bool isRampSetting(const Menu::Item_t *mi) {


                          ^


ReflowController:267: error: ISO C++ forbids declaration of 'mi' with no type [-fpermissive]


 bool isRampSetting(const Menu::Item_t *mi) {


                                        ^


ReflowController:273: error: 'Item_t' in 'class Menu' does not name a type


 bool getItemValueLabel(const Menu::Item_t *mi, char *label) {


                              ^


ReflowController:273: error: ISO C++ forbids declaration of 'mi' with no type [-fpermissive]


 bool getItemValueLabel(const Menu::Item_t *mi, char *label) {


                                            ^


ReflowController:308: error: 'Action_t' in 'class Menu' does not name a type


 bool editNumericalValue(const Menu::Action_t action) { 


                               ^
```

----------


## finos

καλο;

----------


## finos



----------


## misterno

Λοιπόν αφού είδα, έψαξα, έμαθα, άλλαξα, έθαψα, ξέθαψα, πρόσθεσα, αφαίρεσα, τελικά κατάφερα να πετύχω την οθόνη μου να ανοίγει σε άσπρο φόντο και να
βγάζει μήνυμα με μαύρα γράμματα.
Μελετώ τώρα τον κώδικα για αλλαγές και σημεία που έκανα comment για να τα απενεργοποιήσω προσωρινά.
Παραθέτω το μέχρι στιγμής αποτέλεσμα για παραπάνω μελέτη.

----------


## Fire Doger

> καλο;



Το 1ο φουρνάκι καλό, το 2ο όχι. (J-STD-020: 3.2.2 Infrared Infrared (IR)/convection solder reflow equipment capable of maintaining the reflow profiles required by this
standard. It is required that this equipment use IR to heat only the air and not directly impinge upon the SMD Packages/
devices under test.) Με λίγα λόγια δεν πρέπει οι λάμπες αλογόνου να χτυπάνε τα ολοκληρωμένα.
Ο controller μέτριος προς κακός θα έλεγα.
Δες εδώ open source (και έχουν βγάλει και το hardware δεν είναι τίποτα εφόσον έχεις το software) για οθόνη χαρακτήρων και εδώ που έχει προγραμματάρα στο pc.

----------


## misterno

IMAG0019.jpgIMAG0018.jpg
Καλησπέρα.
Από τις χθεσινοβραδυνές δοκιμές με blue LCD και κώδικα arduino που δίνω στα συνημμένα.

Χρησιμοποιώ το MAX6675 με θερμοστοιχείο τύπου Κ για τους 400C.

Πρακτικά που το δοκίμασα με έναν αναπτήρα, λειτουργεί πολύ καλά.
Μένει να μπει στην τελική του θέση και να δοκιμαστεί σε πραγματικές συνθήκες.

ΥΣ. Πολύ fancy το Blue LCD δεν βρίσκετε;  :Wink:

----------


## SeAfasia

μια χαρά Γιάννο η οθονούλα..

----------


## misterno

> μια χαρά Γιάννο η οθονούλα..



Πράγματι. Πήρα 2 με 7€ να βρίσκονται.
Τώρα γράφω κώδικα να βάλω μέσα και ανεμιστήρα για πιο γρήγορο cooling.
Σίγουρα όμως θα προσπαθήσω να βάλω μέσα στο παιγνίδι και την TFT LCD για να έχω
οπτική ένδειξη της καμπύλης θερμοκρασίας. Δεν βιάζομαι όμως.
Το κακό είναι ότι δεν υπάρχει έτοιμη βιβλιοθήκη όπως η adafruit και πρέπει να κάνω προσαρμογές στην UTFT.

----------


## misterno

Ερώτηση:
Αφού το arduino TFT shield καταλαμβάνει όλα τους ακροδέκτες του arduino, πως εγώ μπορώ να κάνω τις συνδέσεις για τα υπόλοιπα περιφερειακά;
Κάποιο παράδειγμα;

----------


## Fire Doger

> Ερώτηση:
> Αφού το arduino TFT shield καταλαμβάνει όλα τους ακροδέκτες του arduino, πως εγώ μπορώ να κάνω τις συνδέσεις για τα υπόλοιπα περιφερειακά;
> Κάποιο παράδειγμα;



Όχι όλα, μερικά απλώς υπάρχουν για μηχανική σταθερότητα, τα ακριανά συνήθως.
Υπάρχει λινκ της οθόνης και δεν το βλέπω? :Confused1:

----------


## misterno

> Όχι όλα, μερικά απλώς υπάρχουν για μηχανική σταθερότητα, τα ακριανά συνήθως.
> Υπάρχει λινκ της οθόνης και δεν το βλέπω?



Υπάρχει* ΕΔΩ*

----------


## Fire Doger

ΑΑ την φωτογραφία εννοείς, στραβομάρα και εγώ :Lol: 

Φαίνεται καθαρά πως το 2ο και 3ο σετ ακροδεκτών δεν είναι συνδεδεμένα με την πλακέτα και μπορείς να τα χρησιμοποιήσεις κανονικά είτε ως εισόδους είτε ως εξόδους, η αναλογική λειτουργία τους είναι έξτρα.
Για να τα βγάλεις έξω μπορείς να χρησιμοποιήσεις κάτι τέτοιο είναι θηλυκή πινοσειρά με γωνία ανάμεσα στο mega και την λευκή πλακέτα, τσίμα τσίμα πρέπει να κουμπώνει.
Τα πιν είναι κοντά για να τα κολλήσεις στην λευκή και να φτάνουν μέχρι κάτω και τα αντίστοιχα αρσενικά έχουν την μαύρη ένωση και δεν θα χωράνε.

Και ένα κατάστημα στην Θεσσαλονίκη που έχει τέτοιους και μπορείς να παραγγείλεις αν δεν θες να περιμένεις από Κίνα.
Κάτι άλλο εκτός απ' αυτό και απ' το να χώσεις απλά μονόκλωνα δεν μου έρχεται στο μυαλό.
Μπορείς και να ξεκολλήσεις τα θηλυκά που είναι στο mega και να τα κολλήσεις ανάποδα να βλέπουν προς τα κάτω αφού δεν είναι και 1 κομμάτι.

----------


## misterno

> ΑΑ την φωτογραφία εννοείς, στραβομάρα και εγώ
> 
> Φαίνεται καθαρά πως το 2ο και 3ο σετ ακροδεκτών δεν είναι συνδεδεμένα με την πλακέτα και μπορείς να τα χρησιμοποιήσεις κανονικά είτε ως εισόδους είτε ως εξόδους, η αναλογική λειτουργία τους είναι έξτρα.
> Για να τα βγάλεις έξω μπορείς να χρησιμοποιήσεις κάτι τέτοιο είναι θηλυκή πινοσειρά με γωνία ανάμεσα στο uno και την λευκή πλακέτα, τσίμα τσίμα πρέπει να κουμπώνει.
> Τα πιν είναι κοντά για να τα κολλήσεις στην λευκή και να φτάνουν μέχρι κάτω και τα αντίστοιχα αρσενικά έχουν την μαύρη ένωση και δεν θα χωράνε.
> 
> Και ένα κατάστημα στην Θεσσαλονίκη που έχει τέτοιους και μπορείς να παραγγείλεις αν δεν θες να περιμένεις από Κίνα.
> Κάτι άλλο εκτός απ' αυτό και απ' το να χώσεις απλά μονόκλωνα δεν μου έρχεται στο μυαλό.







> Μπορείς και να ξεκολλήσεις τα θηλυκά που είναι στο uno και να τα κολλήσεις ανάποδα να βλέπουν προς τα κάτω αφού δεν είναι και 1 κομμάτι.



Κρατάω το τελευταίο σαν μια καλή ιδέα αλλά με τα άλλα 7 ποδαράκια που χρησιμοποιούνται τι γίνεται; 
(δεν σου βάζω και τα pins τροφοδοσίας που κλέβει) :Crying:

----------


## Fire Doger

> Κρατάω το τελευταίο σαν μια καλή ιδέα αλλά με τα άλλα 7 ποδαράκια που χρησιμοποιούνται τι γίνεται; 
> (δεν σου βάζω και τα pins τροφοδοσίας που κλέβει)



Την τροφοδοσία θα την πάρεις κάνοντας κόλληση καλώδιο πάνω στο πιν στην άσπρη πλακέτα ή στο arduino από κάτω.
15 pin δεν σου φτάνουν? Τι θέλεις να βάλεις πάνω?

----------


## misterno

> Την τροφοδοσία θα την πάρεις κάνοντας κόλληση καλώδιο πάνω στο πιν στην άσπρη πλακέτα ή στο arduino από κάτω.
> 15 pin δεν σου φτάνουν? Τι θέλεις να βάλεις πάνω?



Χρειάζομαι τα ποδαράκια 7-12 τα οποία μάλλον τα χρησιμοποιεί και το TFT shield.

----------


## street

ενα τετοιο φουρνακι  δεν θα μπορουσε να λειτουργησει με προσθηκη με ενα  απλο μοντουλαρ ψηφιακο θερμοστατη ο οποιος εχει set point ?  κοστιζει το  πολ 10 ευρω και υπαρχει μεγαλη πιθανοτητα να διαβασει και το αισθητηριο  που εχει ηδη το φουρνακι ?










ενδιτ  δεν εκατσα να διαβασω το θεμα  ....

----------


## Fire Doger

Κάτι δεν πάει καλά...
Δεν γίνετε να μην σου φτάνουν τα pin στο mega (τώρα πρόσεξα ότι είναι και το mega, νόμιζα το uno ήταν).

Υποθέτω ότι το shield είναι αυτό
Χρησιμοποιεί τα pin τροφοδοσίας, είναι πάνω στο spi bus (για την sd πιθανών), έχει pin στο Serial(0) αλλά δεν νομίζω να τα χρησιμοποιεί γιατί θα αχρήστευε το βασικό serial.
Έχεις ελεύθερα 4 external interrupt pin, τα pin του Timer 1,2, τα Serial 1-2-3, 6 pwm pins, τα I2C pins
Δεν μπορώ να καταλάβω τι το ιδιαίτερο έχει το pin 7 (που μόνο αυτό χρησιμοποιεί το shield απ' τα 7-12 που σου χρειάζονται) που δεν μπορεί να γίνει με τα υπόλοιπα.

Για ποιο λόγο τα χρειάζεσαι, τι κάνεις με αυτά?
Αυτό δεν είναι το shield? Ίδιο μου φαίνεται.

----------


## misterno

Αυτή είναι η πλακέτα του shield, πράγματι.
Όχι δεν είπα ότι δεν φτάνουν τα πινς. Είπα ότι είναι κατειλημμένα από την πλακέτα του shield. Όσο για τα ποδαράκια 7-12, απλά τα χρησιμοποιεί το πρόγραμμα.
Θα αλλάξω τον connector να πάει στο κάτω μέρος της πλακέτας και θα αλλάξω και τα define στο πρόγραμμα. Τέλος καλό, όλα καλά( ; )

*EDIT:* Επειδή δεν είμαι δυνατός στον προγραμματισμό σε κώδικα, θα μπορούσε κάποιος να δει το πρόγραμμα που παραθέτω και να με βοηθήσει να δω φως στο TFT LCD μου;
Έχω κάνει comment // σε πολλές μεταβλητές και έχω βάλει κάποιου τύπου serial debug -> Serial.println(μεταβλητή ή "μήνυμα")
για να πιάσω τα σφάλματα αλλά φαίνεται ότι κάτι δεν κάνω σωστά.
Το αρχείο που παραθέτω γίνεται compile (έχοντας τις βιβλιοθήκες) αλλά πέρα από ένα αρχικό μήνυμα στην οθόνη, δεν δείχνει τίποτα εκτός από μια μαύρη οθόνη.
Αν μπορεί ας βοηθήσει κάποιος να προχωρήσω.   :Smile:

----------


## misterno

@Manolena, @SeAfasia και λοιποί γνώστες : Μια βοήθεια παρακαλώ!

----------


## SProg

> αλλά πέρα από ένα αρχικό μήνυμα στην οθόνη



Το οποιο ειναι ποιο;


Ο κωδικας ειναι σαν μακαροναδα.

Βλεπω δεν εχει διακοπες.Εαν οπως ειπες σου εμφανισε σωστο καποιο μηνυμα (μηνυμα που ΕΣΥ εχεις ορισει και στο εμφανιζει σωστα) τοτε θα εψαχνα να βρω εαν εχω καπου χρησιμοποιησει Black χρωμα στον κωδικα.

Βλεπω καπου: *myGLCD.fillScr( VGA_BLACK);



*Πιθανως γεμιζεις με μαυρο την οθόνη.Αυτο το κάνει είτε συνεχόμενα είτε μια φορά και γραφεις μετά πανω της με ίδιο χρωμα (δεν βλεπεις τιποτα).


Ανοιξε την σειρακη σου και δες τι μηνυματα σου πεταει.

----------


## Fire Doger

Έχει διακοπές, Timer1,3 είδα τουλάχιστον...
Πωω 1500 γραμμές σε txt compiler άντε βγάλε άκρη αν είσαι μάγκας :Lol: 

Κατά την εκκίνηση σου βγάζει άσπρο φόντο και με πράσινα το κείμενο: Reflow Controller ver.3.1 (c)2014 karl@pitrich.com κλπ κλπ?
Έχει και Fake Hardware detection, αυτό τι ανιχνεύει? μήπως Είναι έτσι γραμμένο για να λειτουργεί με συγκεκριμένο hardware που το πουλάει αυτός που το έφτιαξε?

----------


## SProg

Δε νομιζω να ειναι αυτη η χρηση του εφοσον μοιραζει τον κωδικα.Αφαιρεις το κομματι αυτο και τελος.

Μαλλον ειναι επιλογη.Την μια λειτουργει σε Hardware Mode και την  αλλη σε Software.Ισως εχει να κανει με δοκιμες, πχ να παραγει μονος του παλμο Zero Crossing για δοκιμες αντι μεσω Hardware.


EDIT:

_As all timing relies on Zero Crossing detection, you need to #define FAKE_HW 1 and install TimerThree when you want to run without actual hardware and/or without mains connection._

----------


## manolena

@Στέφανος:
Μόλις ευκαίρησα και είδα το UI που έφτιαξες στο Github... AAAAAAAAAAAA!!!!!! Παραγγέλνω κι εγώ τώρα!

@Γιάννης (misterno): Ψάχνω να βρώ τον DUE μου, μάλλον τον έχω στη δουλειά και δεν μπορώ να φορτώσω κώδικα. Αλλά όπως λέει ο Στέφανος:




> ...Πωω 1500 γραμμές σε txt compiler άντε βγάλε άκρη αν είσαι μάγκας



Στην πρώτη ευκαιρία. Εξ'άλλου εδώ υπάρχουν καλύτεροι γιατροί, π.χ. Σάββας.  :Thumbup:  :Thumbup:

----------


## SProg

Μανο εχεις μεγαλυτερη ευχερεια και εσυ και ο Στεφανος,εχω καιρο να πιασω το Αrduino εξαλλου. (ουτε τις βιβλιοθηκες για Timers ειδα)


Παντως φαινεται προσεγμενο Project.Διαβασα το Documentation (Link) του προγραμματος και τα ανελυε ολα.Δε νομιζω να ειναι θεμα κωδικα (εαν δε πειραχτηκε).Για ολα σχεδον εχει μηνυματα στην LCD.

Ποιο λογικο ειναι να ειναι προβλημα βιβλιοθηκης ή λαθος συνδεσεων/Hardware.

Γιαννη εχεις πουθενα τις βιβλιοθηκες που περασες να το δοκιμασουμε με τις δικιες σου;


Υ.Γ Κοζανη ρε θηριο;Μεσα;

----------


## Fire Doger

Εγώ πιστεύω πως κάποιο θέμα στην lcd έχει γιατί άλλαξε τις βιβλιοθήκες.

Στο τεχνικό κομμάτι, ποια είναι η γνώμη σας για τον έλεγχο Wave Packet και Phase Fired (που χρησιμοποιεί αυτό) σε σχέση με τον έλεγχο ενεργής περιοχής σε ρελέ (αργό pwm)? Αξίζει τον κόπο? Μαθηματικά διάβασα ότι στέκει αλλά δεν έδινε πολλές πληροφορίες...
Επίσης δεν θα ήταν καλύτερο να έχει διαφορετικά κέρδη για κάθε κατάσταση? Preheat-solder κλπ

----------


## SProg

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

Οχι πιο συχνα ελεγχεις/επεμβαινεις σε κατι , τοσο καλυτερη ειναι η εξοδος.Σε Buck/Boost/Inverter κυκλωματα οι ελεγκτες εκτελουνται καθε F_PWM.

----------


## misterno

@Σάββα, μένω μέσα στην Κοζάνη αλλά μεγάλωσα Θεσσαλονίκη. Αν είσαι και παλιός με τα ραδιοκύματα, ήμουν ο Radio 4 από Νεάπολη.
Για σένα και τα υπόλοιπα παιδιά παραθέτω την δική μου βιβλιοθήκη με την οποία έκανα compile τον κώδικα.
Το άρθρο που υπάρχει στο github του link είναι έτοιμη κατασκευή αλλά με βιβλιοθήκη adafruit.
Εγώ προσπάθησα να το κάνω να παίξει με την δική μου οθόνη TFT LCD ILI9341 16bit.
Το link dropbox *ΕΔΩ*
Το VGA_BLACK το έβαλα για δοκιμή αλλά όποιο και να βάλω γραμμή θερμοκρασίας από pixel  δεν μπόρεσα να δω.
Αν μπορείτε να βοηθήσετε θα είναι καλό και για άλλους όταν θα παρουσιαστεί η πλήρης κατασκευή.

----------


## finos

http://www.4dsystems.com.au
Τις έδειξε κι ο dave σε ενα mail bag από τι κατάλαβα είναι το ίδιο με αυτό που λετε εσείς

----------


## finos

https://youtu.be/pMqn2o55BmM απο το 5ο λεπτο

----------


## SProg

Γιαννη δεν εχω αυτη τη στιγμη τετοια GLCD για να την συνδεσω και να δω.

Εαν ουτε τα παιδια εχουν,τοτε θα πρεπει βημα-βημα να δεις τι φταιει.Φαινεται προβλημα βιβλιοθηκης.Μπορεις να αφαιρεσεις ολο το κωδικα και να αφησεις μονο κωδικα για την GLCD.Κανε μερικες εκτυπωσεις με βαση τις εντολες που χρησιμοποιεις και στο Project να δεις εαν οντως ανταποκρινεται οπως πρεπει.

----------


## misterno

Σάββα, το TFT LCD μου λειτουργεί θαυμάσια, πολύ πιο καλά από άλλα που δοκίμασα.
Είναι γρήγορο στις εναλλαγές και η οθόνη αφής ανταποκρίνεται απόλυτα.
Το δοκίμασα με την τρίλιζα του Μάνου και έπαιξε χωρίς πρόβλημα. (εκτός της διαφορετικής ανάλυσης βέβαια)
Αυτό που έχω πρόβλημα είναι ότι καθώς δεν γνωρίζω πολύ καλά την γλώσσα του arduino (τώρα μαθαίνω κάποια πράγματα)
αδυνατώ να καταλάβω την σύνταξη κάποιων εντολών και την ζεύξη τους με τα άλλα κομμάτια του κώδικα.
Θέμα βιβλιοθήκης πάντως δεν έχω γιατί με τον αρχικό κώδικα έκανε compile αμέσως και χωρίς σφάλματα.
Το θέμα είναι βέβαια η ασυμβατότητα στο μενού εντολών του εκάστοτε LCD controler.

----------


## SProg

To compile ειναι αλλο θεμα Γιαννη.Σε καθε συναρτηση που  καλειται απο την loop() βαλε μια εκτυπωση (πχ αριθμους 1,2,3,4) και δες σε ποια συναρτηση υπαρχει το προβλημα.

----------


## misterno

IMAG0048.jpgIMAG0049.jpgIMAG0051.jpg
Είχα ένα θεματάκι με τις πόρτες ΙΟ του arduino αλλά το ζήτημα επιλύθηκε με τον καλύτερο και ανέξοδο τρόπο!
Σωτήριο αποδείχθηκε το κράμα από μέταλλο χαμηλού σημείου τήξης που χρησιμοποίησα για την αφαίρεση των πλαστικών headers.
Το αποτέλεσμα θεωρώ ότι είναι παραπάνω από καλό. :Smile:

----------


## misterno

Επανέρχομαι στο θέμα με καλά νέα (τουλάχιστον καλύτερα από πριν).
Κατάφερα μετά πολλών κόπων, ψαξίματος και βασάνων να εμφανίζω στο κινέζικο TFT το μενού, να αλλάζω με το encoder switch τις επιλογές και με ένα κλικ να επιλέγω την επιθυμητή λειτουργία.
Το πρόβλημα μου τώρα είναι ότι μόλις επιλέξω την λειτουργία "Start Cycle" το πρόγραμμα κρασάρει και κολλάει.
Αν επιλέξω την λειτουργία "Fan Speed 255%" και πατήσω ένα κλικ στο encoder, τότε το πρόγραμμα επιτρέπει την μεταβολή της ταχύτητας κανονικά.
Το ίδιο και με το "Load Profile".
Αν μπορεί κάποιος πιο έμπειρος να δει που μπορεί να υπάρχει σφάλμα στον κώδικα, θα με βοηθήσει πολύ για την συνέχεια της κατασκευής που ετοιμάζω.
Παραθέτω σε ZIP όλα τα αρχεία που χρησιμοποιώ και τον κώδικα με τις μετατροπές που έχω κάνει. *ΕΔΩ*

EDIT: Κατάφερα τώρα να το κάνω να κάνει τις ρυθμίσεις όλες εκτός από το να κολλάει μόλις κάνω κλικ στην επιλογή "Start Cycle"
Προχωράμε και βλέπουμε...

1.jpg

----------


## imi535

Είμαι χρησιμοποιώντας αυτό το πρόγραμμα ή9341 2.8 "lcd. Δουλεύω!

----------

