Referenced TFT-Blank issue, modified notch for case

Even deeper notch as the USB-Cable has no chance to be plugged in
otherwise.
Referenced white-screen issues in Maiskolben_Mechaincal/README.md and
added a software fix, bump to V2.7
This commit is contained in:
Luca 2017-03-09 12:50:34 +01:00
parent 8d9a4c181e
commit f4048419dd
4 changed files with 81308 additions and 26833 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,16 @@
# Dateien für 3D-Druck- oder Lasercut-Gehäuse # Dateien für 3D-Druck- oder Lasercut-Gehäuse
Sofern die Dateien nicht den Zusatz "THT" enthalten, sind diese für die fertige Station im Shop geeignet. Dateien mit "THT" hingegen nur für den Bausatz (siehe [Maiskolben_THT](https://github.com/ArduinoHannover/Maiskolben/tree/master/Maiskolben_THT)). Sofern die Dateien nicht den Zusatz "THT" enthalten, sind diese für die fertig gelöteten Station im Shop geeignet. Dateien mit "THT" hingegen nur für den Bausatz (siehe [Maiskolben_THT](https://github.com/ArduinoHannover/Maiskolben/tree/master/Maiskolben_THT)).
## Lasercut-Gehäuse ## Lasercut-Gehäuse
Die `_lasercut`-Dateien eignen sich für 3mm Material (klares Plexiglas wird für die Front empfohlen, alternativ Ausschnitt für das Display vorsehen). Die `_lasercut`-Dateien eignen sich für 3mm Material (klares Plexiglas wird für die Front empfohlen, alternativ Ausschnitt für das Display vorsehen). Beim THT Gehäuse sind zudem noch 6 der Button Caps (3D-Druck) notwendig.
## Eigenes/3D-Druck Gehäuse ## Eigenes/3D-Druck Gehäuse
Die `_outlines`-Dateien, respektive die .obj-Dateien sind 2D-/3D-Modelle, die zum Erstellen von eigenen Gehäusen genutzt werden können. Die `_outlines`-Dateien, respektive die .obj-Dateien sind 2D-/3D-Modelle, die zum Erstellen von eigenen Gehäusen genutzt werden können.
# Displayfix
Sollte das Display weiß bleiben (inkonsistent, selbst innerhalb einer Charge nur sporadisch) gibt es verschiedene Möglichkeiten, dies zu beheben. In der Software kann per `#define USE_TFT_RESET` der `STBY_NO` (Ablagesensor) als Resetleitung des Displays genutzt werden. Hierfür ist die Verbindung von `Reset` zwischen Arduino und 74HC4050 zu trennen und am 74HC4050 eine Verbindung zu `A1` herzustellen. Eine andere Variante ist ein RC-Glied zur Zeitverzögerung einzubauen. Hierfür wird ebenfalls die Zuleitung getrennt und ein Widerstand eingelötet. Vom Reset am 4050 (also vom Arduino aus gesehen hinter dem eingelöteten Widerstand) ist gegen Masse ein Widerstand einzulöten. Näheres dazu im Displayfix-PDF.

View file

@ -6,6 +6,13 @@
#include "TimerOne.h" #include "TimerOne.h"
#include "definitions.h" #include "definitions.h"
/*
* If your display stays white, uncomment this.
* Cut reset trace (on THT on upper layer/0R), connect STBY_NO (A1) with reset of TFT (at 4050).
* See also readme in mechanical folder for reference.
*/
//#define USE_TFT_RESET
/* /*
* If red is blue and blue is red change this (2.0 and above have new display types) * If red is blue and blue is red change this (2.0 and above have new display types)
* If not sure, leave commented, you will be shown a setup screen * If not sure, leave commented, you will be shown a setup screen
@ -27,7 +34,7 @@
//#define INSTALL //#define INSTALL
//#define TEST_ADC //#define TEST_ADC
volatile boolean off = true, stby = true, stby_layoff = true, sw_stby_old = false, sw_up_old = false, sw_down_old = false, clear_display = true, store_invalid = true, menu = false; volatile boolean off = true, stby = true, stby_layoff = false, sw_stby_old = false, sw_up_old = false, sw_down_old = false, clear_display = true, store_invalid = true, menu = false;
volatile uint8_t pwm, threshold_counter; volatile uint8_t pwm, threshold_counter;
volatile int16_t cur_t, last_measured; volatile int16_t cur_t, last_measured;
volatile error_type error = NO_ERROR; volatile error_type error = NO_ERROR;
@ -49,7 +56,11 @@ uint8_t revision = 1;
boolean menu_dismissed = false; boolean menu_dismissed = false;
boolean autopower_repeat_under = false; boolean autopower_repeat_under = false;
#ifdef USE_TFT_RESET
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, STBY_NO);
#else
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, 0); Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, 0);
#endif
#define ST7735_GRAY 0x94B2 #define ST7735_GRAY 0x94B2
PID heaterPID(&cur_td, &pid_val, &set_td, kp, ki, kd, DIRECT); PID heaterPID(&cur_td, &pid_val, &set_td, kp, ki, kd, DIRECT);
@ -329,7 +340,7 @@ int getTemperature(void) {
#ifdef TEST_ADC #ifdef TEST_ADC
Serial.println(adc); Serial.println(adc);
#endif #endif
if (adc >= 1020) { //Illegal value, tip not plugged in if (adc >= 900) { //Illegal value, tip not plugged in - would be around 560deg
analogWrite(HEATER_PWM, 0); analogWrite(HEATER_PWM, 0);
if (!off) if (!off)
setError(NO_TIP); setError(NO_TIP);
@ -708,7 +719,9 @@ void display(void) {
} }
void compute(void) { void compute(void) {
#ifndef USE_TFT_RESET
setStandbyLayoff(!digitalRead(STBY_NO)); //do not measure while heater is active, potential is not neccessary == GND setStandbyLayoff(!digitalRead(STBY_NO)); //do not measure while heater is active, potential is not neccessary == GND
#endif
cur_t = getTemperature(); cur_t = getTemperature();
if (off) { if (off) {
target_t = 0; target_t = 0;

View file

@ -1,10 +1,9 @@
#define VERSION "2.6" #define VERSION "2.7"
#define EE_VERSION 26 #define EE_VERSION 27
#define EEPROM_CHECK 42 #define EEPROM_CHECK 42
#define STBY_TEMP 150 #define STBY_TEMP 150
/* /*
* SOFTWARE CAN'T MEASURE MORE THAN 489 DUE TO RESISTOR CONFIGURATION, IF SET TO >= 489 IT'S LIKELY TO KILL YOUR TIP!
* TIPS ARE SPECIFIED FOR 450 DEGREE MAX * TIPS ARE SPECIFIED FOR 450 DEGREE MAX
* If read 1023 on Analog in, the tip is turned off * If read 1023 on Analog in, the tip is turned off
*/ */