Zapisywanie informacji w rzędzie - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Zapisywanie informacji w rzędzie (/watek-zapisywanie-informacji-w-rz%C4%99dzie) |
Zapisywanie informacji w rzędzie - merol92 - 21-03-2018 Witam mam niby mały problem, ale nie widzę przyczyny, informacje (użytkownika + czas) zapisuje mi na kartę sd, jednak są one wyświetlane w kolumnie, a chciałbym aby były w rzędzie. Zamieszczam kod i proszę o pomoc. Kod programu: #include <SPI.h> #include <SD.h> #include <MFRC522.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <virtuabotixRTC.h> virtuabotixRTC myRTC(6, 7, 8); LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display int czujnik = A3; //pin analogowy A3 połączony z sygnałem z czujnika float VOLT; float TEMP; const byte UID[] = {0x17, 0x5A, 0x10, 0xCC, 0x47, 0x55, 0x3A, 0xCC}; MFRC522 rfid(10, 9); MFRC522::MIFARE_Key key; File plik; void setup() { { Serial.begin(9600); ; // wait for serial port to connect. Needed for native USB port only } Serial.print("Wczytywanie karty SD..."); if (!SD.begin(4)) { Serial.println("Brak lub uszkodzenie karty SD"); return; } Serial.println("Karta SD zainicjalizowana."); SPI.begin(); rfid.PCD_Init(); pinMode(2, OUTPUT); //niebieska LED pinMode(3, OUTPUT); //zielona LED pinMode(5, OUTPUT); //czerwona LED // Set the current date, and time in the following format: // seconds, minutes, hours, day of the week, day of the month, month, year //myRTC.setDS1302Time(40, 50, 9, 2, 20, 3, 2018); } void loop() { myRTC.updateTime(); int odczyt = analogRead(czujnik); //odczytanie wartości z czujnika VOLT = (odczyt * 5.0) / 1024.0; //przeliczenie odczytanej wartości na napięcie w woltach (dla podłączenia pod 5 V) TEMP = VOLT * 100; //konwersja z napięcia na temperaturę, rozdzielczość czujnika wynosi 10 mV na stopień lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print(myRTC.dayofmonth); lcd.print("/"); lcd.print(myRTC.month); lcd.print("/"); lcd.print(myRTC.year); lcd.print(" "); lcd.print(myRTC.hours); lcd.print(":"); lcd.print(myRTC.minutes); lcd.setCursor(0,1); lcd.print("T:"); //lcd.print((int)round(TEMP)); lcd.print(TEMP,2); lcd.print((char)223); lcd.print("C"); lcd.print(" "); lcd.print("Zbliz"); digitalWrite(3, LOW); digitalWrite(5, LOW); digitalWrite(2, HIGH); if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { if (rfid.uid.uidByte[0] == UID[0] && rfid.uid.uidByte[1] == UID[1] && rfid.uid.uidByte[2] == UID[2] && rfid.uid.uidByte[3] == UID[3]) { String imie = "Adrian"; Serial.println("Poprawny"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Stan :"); lcd.setCursor(0,1); lcd.print("Dostep "); lcd.print(imie); digitalWrite(2, LOW); digitalWrite(5, LOW); digitalWrite(3, HIGH); plik = SD.open("wejscia.txt", FILE_WRITE); plik.println("Użytkownik: "); plik.print(imie); plik.println(" "); plik.print(myRTC.dayofmonth); plik.println("/"); plik.print(myRTC.month); plik.println("/"); plik.print(myRTC.year); plik.println(" "); plik.print(myRTC.hours); plik.println(":"); plik.print(myRTC.minutes); plik.println(" "); plik.close(); delay(3000); } else if (rfid.uid.uidByte[0] == UID[4] && rfid.uid.uidByte[1] == UID[5] && rfid.uid.uidByte[2] == UID[6] && rfid.uid.uidByte[3] == UID[7]) { String imie = "Zbychu"; Serial.println("Poprawny"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Stan :"); lcd.setCursor(0,1); lcd.print("Dostep "); lcd.print(imie); digitalWrite(2, LOW); digitalWrite(5, LOW); digitalWrite(3, HIGH); plik = SD.open("wejscia.txt", FILE_WRITE); plik.println("Użytkownik: "); plik.print(imie ); plik.println(" "); plik.print(myRTC.dayofmonth); plik.println("/"); plik.print(myRTC.month ); plik.println("/"); plik.print(myRTC.year); plik.println(" "); plik.print(myRTC.hours); plik.println(":"); plik.print(myRTC.minutes); plik.println(" "); plik.close(); delay(3000); } else { Serial.println("Niepoprawny"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Stan :"); lcd.setCursor(0,1); lcd.print("Odmowa dostepu"); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(5, HIGH); delay(3000); }} rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); delay(300); } RE: Zapisywanie informacji w rzędzie - Robson Kerman - 21-03-2018 (21-03-2018, 14:06)merol92 napisał(a): są one wyświetlane w kolumnie, a chciałbym aby były w rzędzieGdzie są wyświetlane? Na wyświetlaczu? Przymierzam się do napisania takiego poradnika dla forów internetowych: "O precyzyjnym zadawaniu pytań" Czasami ktoś ma na tyle czasu i nerwów, aby się domyślić i napisać odpowiedź, ale najczęściej są to brednie ślepca błądzącego po omacku. W twoim przypadku, domyślam się, chodzi o formatowanie danych w pliku. Wskazówka: zainteresuj się metodami println, oraz print, klasy File. Pozdrawiam. |