Project showcase
Propeller Display Controlled by Android

Propeller Display Controlled by Android © GPL3+

There are a lot of projects about POV, but this time i wanted to make my own POV controlled from the smartphone with Os android.

  • 6,139 views
  • 3 comments
  • 12 respects

Components and supplies

A000066 iso both
Arduino UNO & Genuino UNO
×1
Kingbright wp7113srd d image
5 mm LED: Red
×7
Infrared led
×1
Tens70
9V battery (generic)
×1
Mfr 25fbf52 221r sml
Resistor 221 ohm
×8
Photo diode
×1
Mfr 25frf52 10k sml
Resistor 10k ohm
×1
DC motor (generic)
×1

Apps and online services

About this project

This is a project of a propeller display with Arduino which the message to be shown is sent by a smartphone with OS Android. This is a fast way to replace the message. This project was mounted on a breadboard with a dc motor coupled to it.


Code

Untitled fileArduino
/* Proyecto de un POV con Arduino controlado desde Android
José Luis Bejarano Vásquez
Mayo 15 de 2015
sistemasymicros.com.co
@sistemasymicros*/
byte largo=0;  //Tamaño de la palabra / Size of the word
char letra;    //Almacena cada caracter /Stores each letter
String palabra;
int caracterDepurado;

int leds[]={4,5,6,7,8,9,10};  //Array para los leds
const int sensor=2;  // sensor de posición
int estado=0;
int _[] = {0,0,0,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,0};
int A[] = {0,1,1,1,1,1,1, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 0,1,1,1,1,1,1};
int B[] = {1,1,1,1,1,1,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,0,1,1,0};
int C[] = {0,1,1,1,1,1,0, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1};
int D[] = {1,1,1,1,1,1,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 0,1,1,1,1,1,0};
int E[] = {1,1,1,1,1,1,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1};
int F[] = {1,1,1,1,1,1,1, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0};
int G[] = {1,1,1,1,1,1,1, 1,0,0,0,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,1,1,1};
int H[] = {1,1,1,1,1,1,1, 0,0,0,1,0,0,0, 0,0,0,1,0,0,1, 0,0,0,1,0,0,0, 1,1,1,1,1,1,1};
int I[] = {1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,1,1,1,1,1,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1};
int J[] = {0,0,0,0,1,1,0, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 1,1,1,1,1,1,0};
int K[] = {1,1,1,1,1,1,1, 0,0,0,1,0,0,0, 0,0,1,0,1,0,0, 0,1,0,0,0,1,0, 1,0,0,0,0,0,1};
int L[] = {1,1,1,1,1,1,1, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1};
int M[] = {1,1,1,1,1,1,1, 0,1,0,0,0,0,0, 0,0,1,1,0,0,0, 0,1,0,0,0,0,0, 1,1,1,1,1,1,1};
int N[] = {1,1,1,1,1,1,1, 0,1,0,0,0,0,0, 0,0,1,0,0,0,0, 0,0,0,1,0,0,0, 1,1,1,1,1,1,1};
int O[] = {0,1,1,1,1,1,0, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1, 0,1,1,1,1,1,0};
int P[] = {1,1,1,1,1,1,1, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 0,1,1,0,0,0,0};
int Q[] = {0,1,1,1,1,0,0, 1,0,0,0,0,1,0, 1,0,0,0,0,1,0, 1,0,0,0,0,1,0, 0,1,1,1,1,0,1};
int R[] = {1,1,1,1,1,1,1, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 1,0,0,1,0,0,0, 0,1,1,0,1,1,1};
int S[] = {0,1,1,0,0,0,0, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,0,0,0,1,1,0};
int T[] = {1,0,0,0,0,0,0, 1,0,0,0,0,0,0, 1,1,1,1,1,1,1, 1,0,0,0,0,0,0, 1,0,0,0,0,0,0};
int U[] = {1,1,1,1,1,1,0, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 0,0,0,0,0,0,1, 1,1,1,1,1,1,0};
int V[] = {1,1,1,1,1,0,0, 0,0,0,0,0,1,0, 0,0,0,0,0,0,1, 0,0,0,0,0,1,0, 1,1,1,1,1,0,0};
int W[] = {1,1,1,1,1,1,1, 0,0,0,0,0,1,0, 0,0,0,0,1,0,0, 0,0,0,0,0,1,0, 1,1,1,1,1,1,1};
int X[] = {1,0,0,0,0,0,1, 0,1,0,0,0,1,0, 0,0,1,1,1,0,0, 0,1,0,0,0,1,0, 1,0,0,0,0,0,1};
int Y[] = {1,1,1,0,0,0,0, 0,0,0,1,0,0,0, 0,0,0,0,1,1,1, 0,0,0,1,0,0,0, 1,1,1,0,0,0,0};
int Z[] = {1,0,0,0,0,1,1, 1,0,0,0,1,0,1, 1,0,0,1,0,0,1, 1,0,1,0,0,0,1, 1,1,0,0,0,0,1};
int _0[] = {0,1,1,1,1,1,0, 1,0,0,0,1,0,1, 1,0,0,1,0,0,1, 1,0,1,0,0,0,1, 0,1,1,1,1,1,0};
int _1[] = {0,0,0,0,0,0,0, 0,0,1,0,0,0,0, 0,1,0,0,0,0,0, 1,1,1,1,1,1,1, 0,0,0,0,0,0,0};
int _2[] = {0,1,0,0,0,0,1, 1,0,0,0,0,1,1, 1,0,0,0,1,0,1, 1,0,0,1,0,0,1, 0,1,1,0,0,0,1};
int _3[] = {0,1,0,0,0,1,0, 1,0,0,0,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,0,1,1,0};
int _4[] = {0,0,0,1,1,0,0, 0,0,1,0,1,0,0, 0,1,0,0,1,0,0, 1,1,1,1,1,1,1, 0,0,0,0,1,0,0};
int _5[] = {1,1,1,0,0,1,0, 1,0,1,0,0,0,1, 1,0,1,0,0,0,1, 1,0,1,0,0,0,1, 1,0,0,1,1,1,0};
int _6[] = {0,1,1,1,1,1,0, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,0,0,1,1,0};
int _7[] = {1,0,0,0,0,0,0, 1,0,0,0,0,0,0, 1,0,0,0,1,1,1, 1,0,0,1,0,0,0, 1,1,1,0,0,0,0};
int _8[] = {0,1,1,0,1,1,0, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,0,1,1,0};
int _9[] = {0,1,1,0,0,1,0, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 1,0,0,1,0,0,1, 0,1,1,1,1,1,0};


int espaciado;
int retardo;

void setup()
{

  // Configuro los puertos de entrada y salida / Setting the ports of the leds to OUTPUT and sensor to INPUT
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(sensor,INPUT);
  Serial.begin(9600);
  Serial.flush();
 
  //Espacio entre cada letra /Space between each letter
  espaciado = 9;
  // defining the time dots appear (ms)
  retardo =3;
 
}
//***** Para limpiar la columna / For cleaning the column************
void borrar()
{
  for(int z=0;z<7;z++)
    {
      digitalWrite(z+4,LOW);
    } 
}
//*******************************************
void imprimir(int caracter[])
{
  int y;

   // Imprime la primera columna /Prints the first column
  for (y=0; y<7; y++)
  { 
    digitalWrite(y+4, caracter[y]);
  }
  delay(retardo);
  borrar();
 
 
  // Imprime la segunda columna /Prints the second column
  for (y=0; y<7; y++)
  {
    digitalWrite(y+4, caracter[y+7]);
  }
  delay(retardo);
    borrar();
   
 
  // Imprime la tercera columna /Prints the third column
  for (y=0; y<7; y++)
  {   
    digitalWrite(y+4, caracter[y+14]);
  }
  delay(retardo);
    borrar();
  
  // Imprime la cuarta columna /Prints the fourth column
  for (y=0; y<7; y++)
  {
    digitalWrite(y+4, caracter[y+21]);
  }
  delay(retardo);
    borrar();
 
  // Imprime la quinta columna /Prints the fifth column
  for (y=0; y<7; y++)
  {
    digitalWrite(y+4, caracter[y+28]);
  }
  delay(retardo);
    borrar();
  
 
  // printing the space between the letters
  for (y=0; y<7; y++)
  {
    digitalWrite(y+4, 0);
  }
  
  delay(espaciado);
}
//*********************************************
void loop()

{
  
  if (Serial.available())
  {
    
    Serial.flush(); //Limpio el buffer/Clean the buffer
    palabra="";
       
    while (Serial.available() >0)
    {      
       delay(5);
       letra = Serial.read();  //Lee cada caracter de la palabra //Reads each letter of the word
       palabra = palabra+letra;
     
     }  // fin del while
   }  // fin del if
  
    estado = digitalRead(sensor);  //verifico si ya pasó por el sensor de posición / check if already cross the position sensor
    
    largo = palabra.length();  //Calculo la longitud de la palabra / Checks the lenght of the word
    
    if(estado==HIGH)  //si ya pasó// if has just crossed
    {
       for(int x=0;x<largo;x++)
      {
        char caracter = palabra.charAt(x);  //Obtengo cada letra y la almacendo en la variable / Obtains each letter and stores at the variable
        
        caracterDepurado=(caracter-'0');  
        
          if (caracterDepurado>0)  //Esto es para evitar que se envien caracteres no deseados
          {
                                                                                                                                                                                                                                                          
               switch (caracter)
                {

                 case 'A':
                    imprimir(A);
                    break;
                  case 'B':
                    imprimir(B);
                    break;
                  case 'C':
                    imprimir(C);
                    break;
                  case 'D':
                    imprimir(D);
                    break;
                  case 'E':
                    imprimir(E);
                    break;   
                  case 'F':
                    imprimir(F);
                    break;             
                  case 'G':
                    imprimir(G);
                    break;              
                  case 'H':    
                    imprimir(H);
                    break;              
                  case 'I':      
                    imprimir(I);
                    break;              
                  case 'J':
                    imprimir(J);
                    break;              
                  case 'K':
                    imprimir(K);
                    break;     
                  case 'L':
                    imprimir(L);
                    break;   
                  case 'M':
                    imprimir(M);
                    break;   
                  case 'N':
                    imprimir(N);
                    break;   
                  case 'O':
                    imprimir(O);
                    break;   
                  case 'P':
                    imprimir(P);
                    break;   
                  case 'Q':
                    imprimir(Q);
                    break;                   
                  case 'R':
                    imprimir(R);
                    break;   
                  case 'S':
                    imprimir(S);
                    break;  
                  case 'T':
                    imprimir(T);
                    break;  
                  case 'U':
                    imprimir(U);
                    break;  
                   case 'V':
                    imprimir(V);
                    break;
                   case 'W':
                    imprimir(X);
                    break;
                 case 'X':
                    imprimir(X);
                    break;      
                  case 'Y':
                    imprimir(Y);
                    break;  
                     case ' ':
                    imprimir(_);
                    break;  
               
                  
                 }  //fin del switch
                 
             }  //fin del if
        
     } //fin del for
     
} //fin del if estado
  
}  // fin del loop
 

Schematics

Circuit diagram
Diagrama

Comments

Similar projects you might like

Android controlled robot car

Project showcase by Isara Naranirattisai

  • 8,296 views
  • 2 comments
  • 13 respects

Create a People Counter Controlled by an Android App

Project tutorial by Kutluhan Aktar

  • 3,064 views
  • 2 comments
  • 7 respects

Propeller Display

Project showcase by Team Astro

  • 3,520 views
  • 2 comments
  • 14 respects

Android Controlled 6DoF Robotic Arm

Project in progress by Team Mans

  • 11,065 views
  • 0 comments
  • 17 respects

Make an Enhanced R2-D2 to Be Controlled by an Android App

Project tutorial by Kutluhan Aktar

  • 1,280 views
  • 0 comments
  • 2 respects

Android Apps Controlled Arduino Robot Car

by Team platinum

  • 3,594 views
  • 0 comments
  • 16 respects
Add projectSign up / Login