Go Down

Topic: Metec Braille Cells (Read 11008 times) previous topic - next topic

sadie3

Hello,

I am following the exact schematic of the hardware, and using the same code (also with a POT) and the braille cell actuator is not working as its supposed to?

What can I do? Also, when I run the code, almost all the braille pins go down, and maybe 2-4 pins on the last braille cell actuator stay up? What does this mean?? They do this and do not change at all..regardless of changing the POT and the code. I checked the connections several times, they are correct, I am sure.

I am using a P20, arduino uno, and the metec DC-DC converter.


metec_ab

sadie3 connected the Backpanel on the wrong side (left). Look at the picture on entry #8.
This can't do well! There is the data output of the shift register to connect more backpanel and cells.
On the right side is the data input.
We sent her a connecting cable.
Maybe we should sell this cable in the future too.

Have fun with our very small and magic moving cells :-)

fbtobajas

#17
Mar 13, 2018, 05:42 pm Last Edit: Mar 13, 2018, 05:50 pm by fbtobajas
Hi,
i bought some P16 cells, a blackpanel and a dc-dc converter from Metec, and i connect them to a Particle Photon board. The code I'm using is the following. The problem is that, in some cases, the pins from the cell move slowly, or they even don't move, particulary whth numbers or capital letters ... anyone found a similar behavioral?. anyone from metec could give me any explanation/solution? i tried with different cells and the behavioral is the same. thanks


#define PIN_ON D2     
#define PIN_DATA D3   
#define PIN_STROBE D4 
#define PIN_CLOCK D5   

#define bitRead(value, bit) (((value) >> (bit)) & 0x01)

const int cellCount = 1;
byte cells[cellCount];

char test[] = {"hola a"};
int test_idx = 0;
const int charCount = 128;
byte charcells[charCount];
byte charcells_MAY;
byte charcells_NUM;


void setup()
{
 pinMode(PIN_ON,     OUTPUT);
 pinMode(PIN_DATA,   OUTPUT);
 pinMode(PIN_STROBE, OUTPUT);
 pinMode(PIN_CLOCK,  OUTPUT);
 
 digitalWrite(PIN_ON, LOW); 
 
 test_idx = 0;
 init_charcells();
}


void loop()
{
 char char_tmp = test[test_idx];
 if ((char_tmp >= 'A') && (char_tmp <= 'Z') )
   cells[0] = charcells_MAY;   Flush(); Wait();
 if ((char_tmp >= '0') && (char_tmp <= '9') )
   cells[0] = charcells_NUM;   Flush(); Wait();
   
 cells[0] = charcells[char_tmp];   Flush(); Wait();
 
 if (test_idx < sizeof(test))
    test_idx++;
 else
    test_idx = 0;
}


void Wait()
{
 delay(1000);
}

// Send the data
void Flush ()
{
 // This example is for one P16 backpanel.
 // P16: 6,2,1,0,7,5,4,3
 for (int i = 0; i < cellCount; i++)
 {
   if ( bitRead(cells, 6) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 6 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 6 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);

   if ( bitRead(cells, 2) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 2 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 2 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 1) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 1 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 1 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 0) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 0 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 0 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 7) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 7 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 7 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 5) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 5 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 5 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 4) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 4 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 4 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);


   if ( bitRead(cells, 3) )  {
      digitalWrite(PIN_DATA, HIGH);
      Serial.println("PIN_DATA 3 HIGH");
      }
   else {
      digitalWrite(PIN_DATA, LOW);
      Serial.println("PIN_DATA 3 LOW");
      }     
   digitalWrite(PIN_CLOCK, HIGH);
   digitalWrite(PIN_CLOCK, LOW);
 }

 digitalWrite(PIN_STROBE, HIGH);  // Strobe on
 Serial.println("Strobe HIGH");
 digitalWrite(PIN_STROBE, LOW);  // Strobe off
 Serial.println("Strobe LOW");
}


void init_charcells()
{
 charcells_MAY = 0x28;
 charcells_NUM = 0x3C;
 
 charcells['a'] = 0x01;
 charcells['b'] = 0x03;
 charcells['h'] = 0x13;
 charcells['l'] = 0x07;
 charcells['o'] = 0x15;
 charcells[' '] = 0x00;

 /*
 ...
 */
}

Da_ro1276o


Hello

thank you very much

I use the program they gave me and I upload all the points, but I can not upload or I do not know how to move point by poin

Go Up