Tx/Rx as digitals on Mini


i'm pretty sure answer yes, can use tx/rx digital0 , digital1? references them pins 0 , 1 in code, or have special label?

i'm looking drive 2 7 segment displays using pair of decimal->binary encoded switches.

each segment 4 leds, 2.5v @ 20ma each in series-parallel. display 8 280ma, @ 40ma per segment (pin). know on upper bound of arduino :/ display 88 twice that, 560ma @ 40ma per pin. guess pretty means i'm going need pair of uln2802's?

segment0 pin0
segment1 pin1
segment2 pin2
segment3 pin3
segment4 pin4
segment5 pin5
segment6 pin6
segment7 pin7
segment8 pin8
segment9 pin9
segment10 pin10
segment11 pin11
segment12 pin12
segment13 pin13

sw1,1 pina0
sw1,2 pina1
sw1,4 pina2
sw1,8 pina3
sw2,1 pina4
sw2,2 pina5
sw2,4 pina6
sw2,8 pina7

code: [select]

pinmode(0, output);
pinmode(1, output);
pinmode(2, output);
pinmode(3, output);
pinmode(4, output);
pinmode(5, output);
pinmode(6, output);

pinmode(7, output);
pinmode(8, output);
pinmode(9, output);
pinmode(10, output);
pinmode(11, output);
pinmode(12, output);
pinmode(13, output);

pinmode(a0, input);
pinmode(a1, input);
pinmode(a2, input);
pinmode(a3, input);

pinmode(a4, input);
pinmode(a5, input);
pinmode(a6, input);
pinmode(a7, input);

digitalwrite(a0, high);
digitalwrite(a1, high);
digitalwrite(a2, high);
digitalwrite(a3, high);

digitalwrite(a4, high);
digitalwrite(a5, high);
digitalwrite(a6, high);
digitalwrite(a7, high);

int digitone;
int digittwo;

void setup(){



}

void loop(){

digitone = 0;
digittwo = 0;

if (!a0){

digitone = digitone + 1;

}
if (!a1){

digitone = digitone + 2;

}
if (!a2){

digitone = digitone + 4;

}
if (!a3){

digitone = digitone + 8;

}


if (!a4){

digittwo = digittwo + 1;

}
if (!a5){

digittwo = digittwo + 2;

}
if (!a6){

digittwo = digittwo + 4;

}
if (!a7){

digittwo = digittwo + 8;

}

switch (digitone){

case 1:

digitalwrite(0, low);
digitalwrite(1, high);
digitalwrite(2, high);
digitalwrite(3, low);
digitalwrite(4, low);
digitalwrite(5, low);
digitalwrite(6, low);

case 2:

digitalwrite(0, high);
digitalwrite(1, high);
digitalwrite(2, low);
digitalwrite(3, high);
digitalwrite(4, high);
digitalwrite(5, low);
digitalwrite(6, high);

case 3:

digitalwrite(0, high);
digitalwrite(1, low);
digitalwrite(2, low);
digitalwrite(3, high);
digitalwrite(4, low);
digitalwrite(5, low);
digitalwrite(6, high);

case 4:

digitalwrite(0, low);
digitalwrite(1, high);
digitalwrite(2, high);
digitalwrite(3, low);
digitalwrite(4, low);
digitalwrite(5, high);
digitalwrite(6, high);

case 5:

digitalwrite(0, high);
digitalwrite(1, low);
digitalwrite(2, high);
digitalwrite(3, high);
digitalwrite(4, low);
digitalwrite(5, high);
digitalwrite(6, high);

case 6:

digitalwrite(0, high);
digitalwrite(1, low);
digitalwrite(2, high);
digitalwrite(3, high);
digitalwrite(4, high);
digitalwrite(5, high);
digitalwrite(6, high);

case 7:

digitalwrite(0, high);
digitalwrite(1, high);
digitalwrite(2, high);
digitalwrite(3, low);
digitalwrite(4, low);
digitalwrite(5, low);
digitalwrite(6, low);

case 8:

digitalwrite(0, high);
digitalwrite(1, high);
digitalwrite(2, high);
digitalwrite(3, high);
digitalwrite(4, high);
digitalwrite(5, high);
digitalwrite(6, high);

default:

digitalwrite(0, low);
digitalwrite(1, low);
digitalwrite(2, low);
digitalwrite(3, low);
digitalwrite(4, low);
digitalwrite(5, low);
digitalwrite(6, low);

}

switch (digittwo){

case 1:

digitalwrite(7, low);
digitalwrite(8, high);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
digitalwrite(12, low);
digitalwrite(13, low);

case 2:

digitalwrite(7, high);
digitalwrite(8, high);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, high);
digitalwrite(12, low);
digitalwrite(13, high);

case 3:

digitalwrite(7, high);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, low);
digitalwrite(12, low);
digitalwrite(13, high);

case 4:

digitalwrite(7, low);
digitalwrite(8, high);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
digitalwrite(12, high);
digitalwrite(13, high);

case 5:

digitalwrite(7, high);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, high);
digitalwrite(11, low);
digitalwrite(12, high);
digitalwrite(13, high);

case 6:

digitalwrite(7, high);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, high);
digitalwrite(11, high);
digitalwrite(12, high);
digitalwrite(13, high);

case 7:

digitalwrite(7, high);
digitalwrite(8, high);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
digitalwrite(12, low);
digitalwrite(13, low);

case 8:

digitalwrite(7, high);
digitalwrite(8, high);
digitalwrite(9, high);
digitalwrite(10, high);
digitalwrite(11, high);
digitalwrite(12, high);
digitalwrite(13, high);

default:

digitalwrite(7, low);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, low);
digitalwrite(12, low);
digitalwrite(13, low);

}

}

i had similar need more i/o pins ;-)

you can it, must disable uart 'hard way'. activated default , overrides pin-direction (input/output) internally in hardware. once you've disabled cannot use hardware serial communication anymore (in program).

insert @ beginning of setup()

code: [select]
ucsr0a = 0x00;
ucsr0b = 0x00;
ucsr0c = 0x03;


this sets uart control & status registers default values , turns uart + port override off.


Arduino Forum > Using Arduino > Programming Questions > Tx/Rx as digitals on Mini


arduino

Comments

Popular posts from this blog

Joomla site hacked, cant see front and - Joomla! Forum - community, help and support

Christian Home School Programs - Joomla! Forum - community, help and support

Trouble with PF_OutFlag_I_USE_AUDIO and PF_CHECKOUT_LAYER_AUDIO