Tegin selle teema, sest mu pilt Elektroonika 003st ja Arduino Megast ajas mõnel suu vett jooksma.
Mis ma siis tegin. Korjasin loogikakivid ja nendega seotud ahelad ära (muu jäi alles) ning ühendasin nupud ning loogikaväljunditest minevad signaalid (reeglina transistorite baasid) Arduino Mega jalgadega.
Kood on hetkel vigane-toores, kuid töötab niipalju, et saan tegeleda muude vigade otsimistega. (salvestuse lülitus ja ei ole tehtud intelligentset stoppi).
Plaanis on teha autorevers, lindiloendur ja muud põnevat, mis pähe tuleb. Näiteks läbi USB arvutist juhtimine.
Kood ja idee on kasutatav suvalise maki (ka kassettmaki ) peal, mis on elektrilise mehhaanikajuhtimisega.
Aga kood siis.
Mis ma siis tegin. Korjasin loogikakivid ja nendega seotud ahelad ära (muu jäi alles) ning ühendasin nupud ning loogikaväljunditest minevad signaalid (reeglina transistorite baasid) Arduino Mega jalgadega.
Kood on hetkel vigane-toores, kuid töötab niipalju, et saan tegeleda muude vigade otsimistega. (salvestuse lülitus ja ei ole tehtud intelligentset stoppi).
Plaanis on teha autorevers, lindiloendur ja muud põnevat, mis pähe tuleb. Näiteks läbi USB arvutist juhtimine.
Kood ja idee on kasutatav suvalise maki (ka kassettmaki ) peal, mis on elektrilise mehhaanikajuhtimisega.
Aga kood siis.
Kood:
//Elektroonika 003 juhtimine const int LAMP_revers = 30; const int LAMP_tagasi = 35; const int LAMP_edasi = 34; const int LAMP_play = 11; const int LAMP_stop = 12; const int LAMP_paus = 37; const int LAMP_salvestus = 10; const int MOOTOR_play = 9; //---- const int EM_rull = 51; const int EM_rull1 = 53; const int EM_otvod = 49; const int EM_pidur = 47; const int EM_revers =A3;; const int TV_blokk = A0; const int TV_revers = A3; const int AN_lint = A1; const int AN_liikumine = A2; //---- const int NUPP_otkat = 25; const int NUPP_revers = 28; const int NUPP_tagasi = 26; const int NUPP_edasi = 27; const int NUPP_play = 29; const int NUPP_stop = 23; const int NUPP_paus = 24; const int NUPP_salvestus = 22; // int olek = 0; //systeemi olek int vanaolek = 0; boolean paus=false; boolean reverse=false; /* olekud 0 stop 1 play 2 revers 3 edasi 4 tagasi 5 salvestus */ void setup() { // put your setup code here, to run once: reverse=false; pinMode(LAMP_revers, OUTPUT); pinMode(LAMP_tagasi, OUTPUT); pinMode(LAMP_edasi, OUTPUT); pinMode( LAMP_play, OUTPUT); pinMode( LAMP_stop, OUTPUT); pinMode( LAMP_paus, OUTPUT); pinMode( LAMP_salvestus, OUTPUT); pinMode( EM_rull, OUTPUT); pinMode( EM_rull1, OUTPUT); pinMode( EM_otvod, OUTPUT); pinMode( EM_pidur, OUTPUT); pinMode( TV_blokk, OUTPUT); pinMode( TV_revers , OUTPUT); pinMode( AN_lint , OUTPUT); pinMode( AN_liikumine , OUTPUT); pinMode( MOOTOR_play , OUTPUT); //---- pinMode( AN_lint, INPUT_PULLUP); pinMode( AN_liikumine, INPUT_PULLUP); //---- pinMode( NUPP_otkat, INPUT_PULLUP); pinMode( NUPP_revers, INPUT_PULLUP); pinMode( NUPP_tagasi, INPUT_PULLUP); pinMode( NUPP_edasi, INPUT_PULLUP); pinMode( NUPP_play, INPUT_PULLUP); pinMode( NUPP_stop, INPUT_PULLUP); pinMode( NUPP_paus , INPUT_PULLUP); pinMode( NUPP_salvestus, INPUT_PULLUP); stopp(); olek=0; } /* olekud 0 stop 1 play 2 revers 3 edasi 4 tagasi 5 salvestus */ void stopp() //igal juhul teeb stopi. { digitalWrite ( EM_rull,LOW); digitalWrite ( EM_rull1,LOW); digitalWrite ( EM_pidur,LOW); digitalWrite (TV_blokk,HIGH); //---- digitalWrite( LAMP_edasi,LOW); digitalWrite( LAMP_tagasi,LOW); digitalWrite( LAMP_revers,LOW); digitalWrite( LAMP_play ,LOW); digitalWrite( LAMP_stop ,HIGH); digitalWrite( LAMP_paus ,HIGH); digitalWrite( LAMP_salvestus ,LOW); //--- digitalWrite ( MOOTOR_play,HIGH); // nüüd võiks oodata kuni lint seiskub delay(200); if (olek==3) delay(2500); if (olek==4) delay(2500); digitalWrite( EM_otvod,LOW); digitalWrite ( MOOTOR_play,LOW); digitalWrite( LAMP_paus ,LOW); } void play() { digitalWrite( LAMP_edasi,LOW); digitalWrite( LAMP_tagasi,LOW); digitalWrite( LAMP_revers,LOW); digitalWrite( LAMP_play ,HIGH); digitalWrite( LAMP_stop ,LOW); //digitalWrite( LAMP_salvestus ,LOW); if (reverse==true) { reverse=false; digitalWrite(TV_revers,LOW); delay(500); } digitalWrite (TV_blokk,LOW); if (paus==true) { digitalWrite ( EM_rull,LOW); digitalWrite ( EM_rull1,LOW); digitalWrite ( EM_pidur,LOW); digitalWrite( EM_otvod,LOW); digitalWrite ( MOOTOR_play,LOW); } else { digitalWrite ( EM_pidur,HIGH); digitalWrite( EM_otvod,LOW); digitalWrite ( EM_rull,HIGH); digitalWrite ( EM_rull1,HIGH); digitalWrite ( MOOTOR_play,HIGH); delay(500); digitalWrite ( EM_rull1,LOW); } } //------ void play_reverse() { digitalWrite( LAMP_edasi,LOW); digitalWrite( LAMP_tagasi,LOW); digitalWrite( LAMP_revers,HIGH); digitalWrite( LAMP_play ,LOW); digitalWrite( LAMP_stop ,LOW); digitalWrite( LAMP_salvestus ,LOW); if (reverse==false) { reverse=true; digitalWrite(TV_revers,HIGH); delay(500); } digitalWrite (TV_blokk,LOW); if (paus==true) { digitalWrite ( EM_rull,LOW); digitalWrite ( EM_rull1,LOW); digitalWrite ( EM_pidur,LOW); digitalWrite( EM_otvod,LOW); digitalWrite ( MOOTOR_play,LOW); } else { digitalWrite ( EM_pidur,HIGH); digitalWrite( EM_otvod,LOW); digitalWrite ( MOOTOR_play,HIGH); digitalWrite ( EM_rull,HIGH); digitalWrite ( EM_rull1,HIGH); delay(500); digitalWrite ( EM_rull1,LOW); } } void edasi() { digitalWrite( EM_otvod,HIGH); digitalWrite ( EM_pidur,HIGH); digitalWrite ( EM_rull,LOW); digitalWrite ( EM_rull1,LOW); digitalWrite ( MOOTOR_play,LOW); digitalWrite( LAMP_edasi,HIGH); digitalWrite( LAMP_tagasi,LOW); digitalWrite( LAMP_revers,LOW); digitalWrite( LAMP_play ,LOW); digitalWrite( LAMP_stop ,LOW); digitalWrite( LAMP_salvestus ,LOW); } void tagasi() { digitalWrite( EM_otvod,HIGH); digitalWrite ( EM_pidur,HIGH); digitalWrite ( EM_rull,LOW); digitalWrite ( EM_rull1,LOW); digitalWrite ( MOOTOR_play,LOW); digitalWrite( LAMP_edasi,LOW); digitalWrite( LAMP_tagasi,HIGH); digitalWrite( LAMP_revers,LOW); digitalWrite( LAMP_play ,LOW); digitalWrite( LAMP_stop ,LOW); digitalWrite( LAMP_salvestus ,LOW); } void salvestus() { digitalWrite( LAMP_salvestus ,HIGH); play(); } void paus1() { if (paus==false) { paus=true; digitalWrite( LAMP_paus ,HIGH); } else { paus=false; digitalWrite( LAMP_paus ,LOW); } if (olek==1) play(); if (olek==2) play_reverse(); if (olek==5) salvestus(); delay(1000); } /* olekud 0 stop 1 play 2 revers 3 edasi 4 tagasi 5 salvestus */ void loop() { // put your main code here, to run repeatedly: //stup if (digitalRead(NUPP_stop)==LOW) { stopp(); olek=0; } if (digitalRead(NUPP_play)==LOW) { if (olek!=1) { stopp(); } play(); olek=1; } if (digitalRead(NUPP_revers)==LOW) { if (olek!=2) { stopp(); } play_reverse(); olek=2; } if (((digitalRead(NUPP_salvestus)==LOW)&&((digitalRead(NUPP_play)==LOW)))) { if (olek!=5) { stopp(); } salvestus(); olek=5; } if (digitalRead(NUPP_edasi)==LOW) { if (olek!=3) { stopp(); } edasi(); olek=3; } if (digitalRead(NUPP_tagasi)==LOW) { if (olek!=4) { stopp(); } tagasi(); olek=4; } if (digitalRead(NUPP_paus)==LOW) { paus1(); } // siia ka autostopid
Comment