![](http://www.elektronika.lt/_sys/img/dot.gif) |
![](/_sys/img/dot.gif)
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 09 01, 02:51. Visos datos yra GMT + 2 valandos.
|
|
|
![](/_sys/img/box_ico.gif) |
Forumas » Mikrovaldikliai » Arduino "plaukioja"
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 12:12 |
|
|
|
Enshteinas rašo: |
bet tas gėris trunka tik kelis ciklus, po keliu mirksėjimu, pabėga persijunginėjimo laikai ir kelis kart sublyksi, tada vel keli persijunginėjimai sklandūs, ir vėl sublyksi ir vėl skalndus...
Nesu steūklas elektronikoj, o beto sudetingus dalykus daryt ir aiškintis nera daug laiko, tai nusprendžiau nebedaryti tokios ... |
Antra mintis geresnė
O jei niekas iš ragatkės mirksinčių taikinių neišdaužys ir vis tik sugalvosi kada daryt, tai žiūrėk, kad valdymo impulsėliai nepersidengtų su tiristorių (simistoriu) sekančiais pusperiodžais. O tai ir sinchronizavus vis vien tas blykčiojimas mirgėjimo pavidale atsiras. |
|
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 15:10 |
|
|
|
AlgisL dėkui už pagalbą.
minex su tavo kodu tas pats uždelsimas vienu metu ON ON
https://youtu.be/-n622JD2Sr0
digitalWrite(L1, 0); // ON
delay(10);
digitalWrite(L2, 1); // OFF
delay(100);
digitalWrite(L2, 0); // ON
delay(10);
digitalWrite(L1, 1); // OFF
delay(100);
tik pagreitinau
nufilmota slow montion 960fps
https://youtu.be/ZGnJGVHG__U
su mano kodu ir gerai ir blogai...
https://youtu.be/sMlpmETjKTo
slow montion... pradžioj abi OFF OFF nuo 0:11matosi kaip padeda graziau persijunginėti, nors irgi truputi uždelsia ant ON ON
https://youtu.be/p5iRxLxd-KU
Sauliucka manau tai ir vyksta, taigi speju sinchronizavimas nieko nepakeis |
|
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 15:19 |
|
|
|
Jei isvedima i porta darysi po perejimo per 0, kai simistoriai jau issijunge, tai viskas bus ok.
Kaip varianta, siulau valdyti trumpais impulsais.
Kodas: |
ISR ( PCINTx_vect ) {
PORTx = outb;
_delay_ms( 5 );
PORTx = 0;
sync = 1;
}
|
tada, jei kiek nors mikrosekundziu ir paveluosi su ijungimu, tai bent neperlipsi per pusperiodi, bet uztat nebe kritiska bus TIMER0_OVF pertrauktis.
Dar cia yra tai, kad viduj lempikes yra konderis, kuris issikrauna ne momentaliai, todel lempike dar kuri laika sviecia del uzsilikusio kruvio. |
|
|
|
|
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 17:04 |
|
|
|
Nu jo... terminų visokių idomių... jei ka arduino čiupinėju kelias dienas tai ka per youtube išmokau tai pamirksinti lepmutes ir prisijungt potenciometra pakeitinėt delay time )
bet stabilizuot procesa norėčiau, tai AlgisL jei turi kantrybes galiu pradėt klausinėt nuo maitinimo.... ![Smile](images/smiles/icon_smile.gif) |
|
|
|
|
![](/_sys/img/dot.gif) |
![](/_sys/img/dot.gif) |
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 18:05 |
|
|
|
Arduine jau yra 'krienas", tad uzteks tik betkokio 7,5V maitblokio nuo D-Link ar kazko panasaus pvz https://www.evita.lt/b-7-5v1500-maitinimo-saltinis-7-5v-1-5a-su-kistuku-dc-2-1-5-5mm-d-link?search=1500&sort=p.price&order=ASC&page=3
Bet jei valdysi simistorius, tai ju grandines patartina jungti per optronus i GND nuo atskiro galingesnio krieno su nedicku radiotoriuku.
5V i MOC30xx kuris neturi nulio deteksino, is jo per 390 omu rezistoriu i atmegos kojas. Simistoriaus puseje jungi 2 koja ir visus tabus (gali ant vieno radiatoriaus, jei reikia) i sakykim Neutrale. 3 simistoriaus koja per 330 omu varzike i MOC 4 6 kojas gali maisyti vietomis kaip tik tau patogiau. Lempas junk i 1 simistoriaus koja ir faze (patariu per saugikli).
Valdymas aktyviu '0'.
programoje rasai pvz:
Kodas: |
#include <avr/io.h>
#include <avr/interrupts.h>
#include <avr/progmem.h>
#include <utils/delay.h>
#define greitis 100 // pauze 1/100-siomis
#define port1 PORTB
#define port2 PORTD
const uint8_t EFEKTAI[] PROGMEM = (
fedcba98 76543210
0b0000000, 0b00000001,
0b0000000, 0b00000010,
0b0000000, 0b00000100,
0b0000000, 0b00001000,
0b0000000, 0b00010000,
0b0000000, 0b00100000
// ir taip kol nusibos, paskutineje eiluteje gale nereikia kablio
);
const uint16_t eLen = sizeof(EFEKTAI);
volatile register uint8_t out1 asm("r2") = 0;
volatile register uint8_t out2 asm("r3") = 0;
volatile register uint8_t sync asm("r4") = 0;
ISR ( PCINTx_vect ) {
_delay_us( 100 ); // kad tikrai persoktu "0"
port1 = out1;
port2 = out2;
_delay_ms( 5 );
port1 = 0;
port2 = 0;
sync = 1;
PCIFR = _BV(0); // 0,1,2 cia jau kuria koja panaudosi
}
static uint16_t index = 0;
static uint16_t cnt = 0; // greicio skaitliukas
void setup() {
// portu nustatymai
out2 = pgm_read_byte( index++ );
out1 = pgm_read_byte( index++ );
PCIFR = _BV(0); // 0,1,2 zek auksciau
PCICR = _BV(0);
interrupts();
}
void loop() {
if ( sync ) {
if ( greitis <= ++cnt ) {
cnt = 0;
if ( eLen <= index ) index = 0;
out2 = pgm_read_byte( index++ );
out1 = pgm_read_byte( index++ );
}
sync = 0;
}
}
|
rasau is atminties, tad gali buti sintakses klaidu.
tavo schema _BEVEIK_ tinka (tik nejunk maitinimo i USB arba RJ45 lizdus) ir ji lygtais valdymas "1"
jei valdymas "0", tai pakeisti
out2 = 0xFF ^ pgm_read_byte( index++ );
out1 = 0xFF ^ pgm_read_byte( index++ );
0xFF cia tie bitai, kurie valdo
iejimu bitai turi buti 0, kad neijungtu PULLUP ant ZeroDetection'o |
|
|
|
|
![](/_sys/img/dot.gif) |
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 07, 19:03 |
|
|
|
Siaip, atmega turi gera finta, jei rasai i PINx kazka, tai kur irasai 1, ten invertuojasi, todel vietoje PORTx = outx; gali rasyti PINx = outx; o du kart invertavus gausis anksciau buvusi reiksme.
masyve vienetukus isstatineji tik tuose bituose kurie valdo, kitus praleidi ir nieko nebus, net jei tie pinai naudojami kitoms f-joms.
Arba masyve apsirasai savo loginius bitus be tarpu, o pries priskiriant reiksmes susidelioji kaip reikia. pvz:
Kodas: |
#define greitis 100 // pauze 1/100-siomis
#include <avr/io.h>
#include <avr/interrupts.h>
#include <avr/progmem.h>
#include <utils/delay.h>
const uint8_t EFEKTAI[] PROGMEM = (
fedcba98 76543210
0b0000000, 0b00000001,
0b0000000, 0b00000010,
0b0000000, 0b00000100,
0b0000000, 0b00001000,
0b0000000, 0b00010000,
0b0000000, 0b00100000
// ir taip kol nusibos, paskutineje eiluteje gale nereikia kablio
);
const uint16_t eLen = sizeof(EFEKTAI);
volatile register uint8_t out0 asm("r2") = 0;
volatile register uint8_t out1 asm("r3") = 0;
volatile register uint8_t out2 asm("r4") = 0;
volatile register uint8_t sync asm("r5") = 0;
static uint16_t index = 0;
static uint16_t cnt = 0; // greicio skaitliukas
void update() {
if ( eLen <= index ) index = 0;
uint16_t t = pgm_read_word( index );
index += 2; // nuskaitem 2 baitus
uint8_t p0 = 0, p1 = 0, p2 = 0;
p0 = ( 0b0000000000111111 & t ) << 2; // PD7..PD2
p1 = ( 0b0000011111000000 & t ) >> 6; // PB4..PB0
p2 = ( 0b1111100000000000 & t ) >> 10; // PC5..PC1
// PC0 lieka kaip iejimas Zero Deteksinui PCINT8
out0 = p0;
out1 = p1;
out2 = p2;
}
ISR ( PCINT1_vect ) {
_delay_us( 100 );
PIND = out0; PINB = out1; PINC = out2;
_delay_ms( 5 );
PIND = out0; PINB = out1; PINC = out2;
sync = 1;
PCIFR = _BV( PCIE1 );
}
void setup() {
ACSR = _BV( ACD );
ADCSRA = 0;
DIDR0 = 0;
// pinMode( A0, INPUT ); // ZeroDetection
PORTD |= 0b11111100; // PD7..PD2 valdymas 0
DDRD |= 0b11111100;
PORTB |= 0b00011111; // PB4..PB0
DDRD |= 0b00011111;
PORTC = 0b00111110; // PC5..PC1
DDRC = 0b00111110;
update();
PCIMSK1 = _BV( PCINT8 );
PCICR = _BV( PCIE1 );
PCIFR = _BV( PCIF1 );
sei();
// cia gali buti jusu kodas
}
void loop() {
if ( sync ) {
if ( greitis <= ++cnt ) {
cnt = 0;
update();
}
sync = 0;
}
}
|
PIN13 lieka laisvas LED'ui kazka pamirkseti
PIN0..1 lieka laisvi Serial komunikacijai
A0 kaip iejimas Zero Deteksinui
jei keiksis del r2..r4, tai perkelk i r16, r17, r18
SCR modulius maitink per papildoma chriena, nes tas maziukas perkais nuo perkrovos. |
|
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 09, 17:49 |
|
|
|
Nesuprantu, kam tokiam "sudėtingam" dalykui Arduino? Negi paprasčiausio multivibratoriaus neužtenka? Nereikės nei sinchronizuoti su tinklu, nei ką... |
|
|
|
|
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 21, 17:56 |
|
|
|
hencia rašo: |
Nesuprantu, kam tokiam "sudėtingam" dalykui Arduino? Negi paprasčiausio multivibratoriaus neužtenka? Nereikės nei sinchronizuoti su tinklu, nei ką... |
visiskai niekas nesikeicia ar arduino ar multivibratorius, beda islieka nes tarp lempu ir arduino stovi simistorius |
|
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 21, 18:15 |
|
|
|
Kadangi projektas nepigus gavosi, tai priemem sprendimą visas 34 lempas valdyti atskirai. Principas toks: Bus pastatyti du judesio davikliai (fasado plotis 6m, tai davikliai du tam kad lengvai suveiktu priėjus is betkokios puses ).
Kol žmogaus nėra, lempos užsidegineja pagal nustatytą programą, o prięjus žmogui, užsidega nustatytas lempu skaicius, niekas nebeblyks. Žmogaus nueina, judesio daviklis nebefiksuoja judesio ir po kokiu 30s mirksėjimo programos pasileidžia iš naujo.
Minėjau tikriausiai kad nesu stebūklas arduino prgramavime, taigi taupant laiką prašymas/klausimas būtų, ar kas galėtų suprogramuot arduino su mano išdėstita mintim ir šiais efektais.... žiūrėti nuo 6:16
www.youtube.com/watch?v=aNSTsFWWP_s&t=185s
skolingas neliksiu
jei ka ir per privata galim susibendraut |
|
Paskutinį kartą redagavo Enshteinas, 2019 11 21, 18:24. Redaguota 1 kartą |
|
|
|
![](/_sys/img/dot.gif) |
![](templates/elektronikalt/images/folder.gif) |
Arduino "plaukioja" |
Parašytas: 2019 11 21, 19:20 |
|
|
|
Cia tikrai bus tokios begancios eilutes kaip Vegas'e 1980'taisiais ar kaip kokiam china town'e? |
|
|
|
|
|
![](http://www.elektronika.lt/_sys/img/box_ico.gif) |
Google paieška forume |
|
![](http://www.elektronika.lt/_sys/img/box_ico.gif) |
Naujos temos forume |
|
![](http://www.elektronika.lt/_sys/img/dot.gif) |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
![](http://www.elektronika.lt/_sys/img/dot.gif) |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
LEGO
Mänguköök,
mudelautod,
nukuvanker |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
![](http://www.elektronika.lt/_sys/img/dot.gif) |
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
![Reklama](http://www.elektronika.lt/_sys/img/rrr2.gif)
|
![Reklama](http://www.elektronika.lt/_sys/img/rrr1.gif) |