 |

|
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 2025 04 29, 18:28. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Laiptų apšvietimas
|
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
|
|
|
Puslapis 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 13:51 |
|
|
|
Sveiki visi.Kilo idėja pasidaryti laiptų pakopų apšvietimą su AVR arba PIC mikrovaldikliu. Pvz. nuspaudus jungtuką(nefiksuojanti) 1 aukšte, kad pakopos po viena nuo apačios užsidegtų ir šviestų kokį 30s ir po vieną nuo apačios užgestų. Tas pats ir su 2 aukšto jungikliu tik viskas veiktu nuo 2 aukšto. Kad būtų aiškiau http://www.youtube.com/watch?v=IZGQzOdfLvM .
Gal kas galėtų pakonsultuoti šia tema  |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 14:09 |
|
|
|
Nera cia ka konsultuoti. Randi schemu archyve tema apie pirmus zingnius su avr, ismoksti pamirkseti led, dadedi 2 optinius barjerus, kad is virsaus arba is apacios pradetu sviesti, davedi programa kad veiktu kaip nori ir turi ta laiptu apsvietima. |
|
|
|
|
 |
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 14:14 |
|
|
|
Kaškada dariau kaška panašaus su avr, tik aštuoniom pakopom ir užlaikymas primityvus. Reikėtu daryti su PWM uždegimu ir užgesinimu.
Va mano kodas jai kaškiek pades:
Kodas: |
#define F_CPU 100000
#include <avr/io.h>
#include <util/delay.h>
#define T 5000 /* ms */
#define nop() {asm("nop");}//
void Big_Delay()
{
long i;
for(i=0;i<100000;i++) nop();
}
int main (void)
{
DDRB=0b00000000;
PORTB=0b00000011;
DDRD=0b11111111;
PORTD=0b00000000;
while(1){
if(!(PINB&1)) //jei pirmas mygtukas paspausta pradeda jungineti diodus
{while(!(PINB&1)){}
PORTD=0b00000001;
_delay_ms(T);
PORTD=0b00000011;
_delay_ms(T);
PORTD=0b00000111;
_delay_ms(T);
PORTD=0b00001111;
_delay_ms(T);
PORTD=0b00011111;
_delay_ms(T);
PORTD=0b00111111;
_delay_ms(T);
PORTD=0b01111111;
_delay_ms(T);
PORTD=0b11111111;//visi diodai uzsidege
Big_Delay();
PORTD=0b11111111;
_delay_ms(T);
PORTD=0b11111110;
_delay_ms(T);
PORTD=0b11111100;
_delay_ms(T);
PORTD=0b11111000;
_delay_ms(T);
PORTD=0b11110000;
_delay_ms(T);
PORTD=0b11100000;
_delay_ms(T);
PORTD=0b11000000;
_delay_ms(T);
PORTD=0b10000000;
_delay_ms(T);
PORTD=0b00000000;//visi diodai uzgeso
_delay_ms(T);
}
if(!(PINB&2))//Jei antras mygtukas nuspausta pradeda isjungineti diodus
{while(!(PINB&2)){}
PORTD=0b10000000;
_delay_ms(T);
PORTD=0b11000000;
_delay_ms(T);
PORTD=0b11100000;
_delay_ms(T);
PORTD=0b11110000;
_delay_ms(T);
PORTD=0b11111000;
_delay_ms(T);
PORTD=0b11111100;
_delay_ms(T);
PORTD=0b11111110;
_delay_ms(T);
PORTD=0b11111111;//visi diodai uzsidege
Big_Delay();
PORTD=0b11111111;
_delay_ms(T);
PORTD=0b01111111;
_delay_ms(T);
PORTD=0b00111111;
_delay_ms(T);
PORTD=0b00011111;
_delay_ms(T);
PORTD=0b00001111;
_delay_ms(T);
PORTD=0b00000111;
_delay_ms(T);
PORTD=0b00000011;
_delay_ms(T);
PORTD=0b00000001;
_delay_ms(T);
PORTD=0b00000000;//visi diodai uzgeso
_delay_ms(T);
}//while pabaiga
}
}
|
|
|
|
|
|
 |
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 15:05 |
|
|
|
kiek paprasciau yra Boarduino variantas.
svarbiausia nereikia knistis su zemo lygi bitukais, tik laiko apskaita per systicks. |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 15:18 |
|
|
|
Tai kad aš bandžiau su tais pirmi žingsniai su AVR, bet nieko nesigavo. Aš per žalias tokiems reikalams todėl ir prašau pagalbos į tuos kas supranta |
|
|
|
|
 |
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 16:45 |
|
|
|
PeetTong rašo: |
Kaškada dariau kaška panašaus su avr, tik aštuoniom pakopom ir užlaikymas primityvus. Reikėtu daryti su PWM uždegimu ir užgesinimu.
Va mano kodas jai kaškiek pades:
Kodas: |
#define F_CPU 100000
#include <avr/io.h>
#include <util/delay.h>
#define T 5000 /* ms */
#define nop() {asm("nop");}//
void Big_Delay()
{
long i;
for(i=0;i<100000;i++) nop();
}
int main (void)
{
DDRB=0b00000000;
PORTB=0b00000011;
DDRD=0b11111111;
PORTD=0b00000000;
while(1){
if(!(PINB&1)) //jei pirmas mygtukas paspausta pradeda jungineti diodus
{while(!(PINB&1)){}
PORTD=0b00000001;
_delay_ms(T);
PORTD=0b00000011;
_delay_ms(T);
PORTD=0b00000111;
_delay_ms(T);
PORTD=0b00001111;
_delay_ms(T);
PORTD=0b00011111;
_delay_ms(T);
PORTD=0b00111111;
_delay_ms(T);
PORTD=0b01111111;
_delay_ms(T);
PORTD=0b11111111;//visi diodai uzsidege
Big_Delay();
PORTD=0b11111111;
_delay_ms(T);
PORTD=0b11111110;
_delay_ms(T);
PORTD=0b11111100;
_delay_ms(T);
PORTD=0b11111000;
_delay_ms(T);
PORTD=0b11110000;
_delay_ms(T);
PORTD=0b11100000;
_delay_ms(T);
PORTD=0b11000000;
_delay_ms(T);
PORTD=0b10000000;
_delay_ms(T);
PORTD=0b00000000;//visi diodai uzgeso
_delay_ms(T);
}
if(!(PINB&2))//Jei antras mygtukas nuspausta pradeda isjungineti diodus
{while(!(PINB&2)){}
PORTD=0b10000000;
_delay_ms(T);
PORTD=0b11000000;
_delay_ms(T);
PORTD=0b11100000;
_delay_ms(T);
PORTD=0b11110000;
_delay_ms(T);
PORTD=0b11111000;
_delay_ms(T);
PORTD=0b11111100;
_delay_ms(T);
PORTD=0b11111110;
_delay_ms(T);
PORTD=0b11111111;//visi diodai uzsidege
Big_Delay();
PORTD=0b11111111;
_delay_ms(T);
PORTD=0b01111111;
_delay_ms(T);
PORTD=0b00111111;
_delay_ms(T);
PORTD=0b00011111;
_delay_ms(T);
PORTD=0b00001111;
_delay_ms(T);
PORTD=0b00000111;
_delay_ms(T);
PORTD=0b00000011;
_delay_ms(T);
PORTD=0b00000001;
_delay_ms(T);
PORTD=0b00000000;//visi diodai uzgeso
_delay_ms(T);
}//while pabaiga
}
}
|
|
O su kokiu kontroleriu darei darei ir gal hex failiuka gali? |
|
|
|
|
 |
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 17:26 |
|
|
|
Kodas: |
#define PAKOPU 10
#define T 5000 // ms
#define op1 11
#define op2 12
void setup(){
int i;
for(i=1,i<PAKOPU,i++) pinMode(i, OUTPUT);
}
int i=0,t;
void loop(){
if(digitalRead(op1)==HIGH){// sakykim sudirbo apatinio laiptelio optronas
t=1; i=1;
}
if(digitalRead(op2)==HIGH){// sakykim sudirbo virsutinio laiptelio optronas
t=PAKOPU; i=-1;
}
if(i){
digitalWrite(t, LOW);
if(i>0){
if(t<PAKOPU) digitalWrite(++t, HIHG);
else i=0;
}
if(i<0){
if(t>1) digitalWrite(--t, HIHG);
else i=0;
}
delay(T);
}
}
|
galima ir pwm, bet norint dagiau isejimu, reikia rasytis/ieskotis softPWM() |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 18:39 |
|
|
|
korne1 rašo: |
Tai kad aš bandžiau su tais pirmi žingsniai su AVR, bet nieko nesigavo. Aš per žalias tokiems reikalams todėl ir prašau pagalbos į tuos kas supranta |
Jei tau nesigauna pagal pirmus zingsnius, tai taip iseina kad tu prasai padaryti viska uz tave, o ne konsultacijos lauki. |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 18:43 |
|
|
|
PeetTong rašo: |
Elementari atmega 8.
O hex faila su avrstudio gali pasidaryti.
Stai nuoroda i faila:
Laiptukai.hex - 2.3 Kb |
Man kažkodėl neveikia,gal darau ką nors netaip?
PB6 ir PB7 jungtukai;
PD0-PD7 išėjimai į diodus per 1kom rezistorius
Rezonatorius turi būti vidinis? |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 19:14 |
|
|
|
korne1 rašo: |
PeetTong rašo: |
Elementari atmega 8.
O hex faila su avrstudio gali pasidaryti.
Stai nuoroda i faila:
Laiptukai.hex - 2.3 Kb |
Man kažkodėl neveikia,gal darau ką nors netaip?
PB6 ir PB7 jungtukai;
PD0-PD7 išėjimai į diodus per 1kom rezistorius
Rezonatorius turi būti vidinis? |
pagal jo programa mygtukai jungiasi i PB0/PB1, komutuojama i mase. |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 19:32 |
|
|
|
PORTB=0b00000011;
tai prasideda nuo PB0 ar nuo PB7? |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 21:03 |
|
|
|
korne1 rašo: |
PORTB=0b00000011;
tai prasideda nuo PB0 ar nuo PB7? |
paskaityk programavimo pradmenis apie duomenu tipus.
LitleEndian ir BigEndian sistemose skiriasi baitu isdestymas, bet vyriausi bitai (MSB) baite visada kaireje, jauniausi bitai (LSB) visada desineje, tskant zydiskai, dideja is desines i kaire. |
|
|
|
|
 |
Laiptų apšvietimas |
Parašytas: 2012 12 20, 21:27 |
|
|
|
Viskas veikia kaip ir norėjau,papildomai pajungiau C portus nes man reikėjo 12 diodu. Visiems labai ačiū už pagalba, o ypač PeetTong. |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
LEGO
Mänguköök,
mudelautod,
nukuvanker |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |