11-01-2017, 01:57
Witam Kolegów.
Arduino 1.8.1 (było też na 1.6.12)
System: XP sp3
Mam prosty projekt który ma na celu mierzyć temperaturę NTC i wysiedlać na LCD.
Ma tez pokazywać jej wartość minimalną i maksymalną.
Zrobiłem pomiar i wyświetlanie temperatury i wszystko działało poprawnie.
Kompilator zgłaszał że wszystko jest dobrze:
Szkic używa 3902 bajtów (12%) pamięci programu. Maksimum to 30720 bajtów.
Zmienne globalne używają 101 bajtów (4%) pamięci dynamicznej, pozostawiając 1947 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
Gdy zacząłem dopisywać kolejne zmienne kompilator zaczął głupieć i nie mam już pomysłu co może być tego powodem. Dopisanie jakiekolwiek linii powoduje wywalenie błędu przy kompilacji:
collect2.exe: error: ld returned 5 exit status
exit status 1
Błąd kompilacji dla płytki Arduino Nano.
Jestem początkujący i może błąd jest jakiś prosty. Ale nie mam pomysłu skąd i dlaczego on się pojawia
Arduino 1.8.1 (było też na 1.6.12)
System: XP sp3
Mam prosty projekt który ma na celu mierzyć temperaturę NTC i wysiedlać na LCD.
Ma tez pokazywać jej wartość minimalną i maksymalną.
Zrobiłem pomiar i wyświetlanie temperatury i wszystko działało poprawnie.
Kompilator zgłaszał że wszystko jest dobrze:
Szkic używa 3902 bajtów (12%) pamięci programu. Maksimum to 30720 bajtów.
Zmienne globalne używają 101 bajtów (4%) pamięci dynamicznej, pozostawiając 1947 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
Gdy zacząłem dopisywać kolejne zmienne kompilator zaczął głupieć i nie mam już pomysłu co może być tego powodem. Dopisanie jakiekolwiek linii powoduje wywalenie błędu przy kompilacji:
collect2.exe: error: ld returned 5 exit status
exit status 1
Błąd kompilacji dla płytki Arduino Nano.
Jestem początkujący i może błąd jest jakiś prosty. Ale nie mam pomysłu skąd i dlaczego on się pojawia
Kod:
#include <LiquidCrystal.h> //Dołączenie bilbioteki
#include <math.h>
LiquidCrystal lcd(7, 6, 2, 3, 4, 5); //Informacja o podłączeniu nowego wyświetlacza (RS), (Enable), (D4), (D5), (D6), (D7)
double TempNTC;
word Temp;
word Tmin=24;
word Tmax=24;
//word Td=0;
void setup() {
lcd.begin(16, 2); //Deklaracja typu
lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print(" Termomet"); //Wyświetlenie tekstu
lcd.setCursor(0, 1); //Ustawienie kursora
lcd.print(" do Zelazek"); //Wyświetlenie tekstu
delay(3000); //Odczekanie 1 sekundy
lcd.clear();
lcd.begin(16, 2); //Deklaracja typu
lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print(" ROBOS s.c."); //Wyświetlenie tekstu
lcd.setCursor(0, 1); //Ustawienie kursora
lcd.print(" V0.01"); //Wyświetlenie tekstu
delay(3000); //Odczekanie 1 sekundy
lcd.clear();
}
double Thermister(int RawADC) {
// See http://en.wikipedia.org/wiki/Thermistor for explanation of formula
TempNTC = log(((10240000 / RawADC) - 10000));
TempNTC = 1 / (0.001129148 + (0.000234125 * TempNTC) + (0.0000000876741 * TempNTC * TempNTC * TempNTC));
TempNTC = TempNTC - 273.15; // Convert Kelvin to Celcius
return TempNTC;
}
void loop() {
lcd.clear();
Temp = Thermister(analogRead(0)); // Read sensor
lcd.setCursor(0, 0); //Ustawienie kursora
lcd.print (Temp); //Wyświetlenie tekstu
lcd.print ("C");
delay(500);
}