diff --git a/uart.cpp b/uart.cpp
index 098e9c6515dc64ff25c1cb26707cf8be96b943c7..8846998a3d5d26c13a328a6c6c14a3b0dd4768ba 100644
--- a/uart.cpp
+++ b/uart.cpp
@@ -5,6 +5,7 @@
 #include <wiringSerial.h>
 #include <wiringPi.h>
 
+#include <conio.h>
 #include <iostream>
 
 using namespace std;
@@ -15,6 +16,9 @@ const char TURN_OFF[] = "Turn Led Off";
 int main(int argc, char const *argv[])
 {
     int fd = serialOpen("/dev/ttyS0", 9600);
+    
+    char buffer[26];
+    int i = 0;
 
     if (fd == -1 || wiringPiSetup() == -1) {
         printf("UART PAS OK\n");
@@ -22,34 +26,24 @@ int main(int argc, char const *argv[])
     }
 
     serialPrintf(fd, TURN_ON);
-    delay(1000);
-    int response;
-
-    while (true) {
-        if (serialDataAvail(fd)) {
-            response = serialGetchar(fd);
-            break;
-        }
-    }
     
-    cout << response << endl;
-    printf("%c\n", response);
+    while (serialDataAvail(fd) > -1) {
+        buffer[i++] = serialGetchar(fd);
+        if (i == 25) break;
+    }
+    buffer[i] = '\0';
+    printf("%s\n", buffer);
+
+    delay(2000);
     serialPrintf(fd, TURN_OFF);
+    
+    while (serialDataAvail(fd) != 26) { }
 
-    delay(200);    
-
-    while (true) {
-        if (serialDataAvail(fd) > 0) {
-            cout << serialDataAvail(fd) << endl;
-            for (int i = 0; i < serialDataAvail(fd); i++)
-            {
-                response = serialGetchar(fd);
-            }
-            break;
-        }
+    for (i = 0; i < 26; i++)
+    {
+        buffer[i] = serialGetchar(fd);
     }
-
-    cout << response << endl;
+    cout << buffer << endl;    
 
     serialClose(fd);