Elektronika.lt
 2022 m. rugpjūčio 10 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 - Garso technika
 - Automobilių elektronika
 - Buitinė elektronika
 - Kompiuterių elektronika
 - Maitinimo šaltiniai
 - Mikrovaldikliai
 - Radiotechnika
 - Šviesos efektai
 - Įvairi elektronika
 Teorija, žinynaiSąrašas
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Rugpjūčio 10 d. 16:42
Lietuvoje keičiasi 5G vertinimas: mažiau bijoma dėl sveikatos, bet vis dar abejojama dėl žalos bitėms
Rugpjūčio 10 d. 14:37
Liepos mėnesio sąskaitos už elektrą: prireiks kruopštumo bei disciplinos
Rugpjūčio 10 d. 12:32
Hibridiniai vėjo ir saulės parkai skinasi kelią Lietuvoje: kas jie ir kuo pranašesni?
Rugpjūčio 10 d. 10:14
„Garmin Enduro 2“ sportininkams suteikia dar daugiau saugumo varžybų metu
Rugpjūčio 10 d. 08:17
Penkios naudos, kurias suteiks valstybės informacinių išteklių perkėlimas į debesiją
Rugpjūčio 9 d. 20:21
Vilnius užbaigė esminį išmanaus vandentiekio etapą
Rugpjūčio 9 d. 18:18
Panašu, kad mokslininkų sukurta dirbtinio intelekto programa atrado alternatyvią fiziką
Rugpjūčio 9 d. 16:53
Dilema: ar galime jaustis saugiai vykstant kibernetiniams puolimams?
Rugpjūčio 9 d. 14:38
Paprastas būdas, kaip kurti programas be techninių žinių: ar esate bandę „Low Code“?
Rugpjūčio 9 d. 12:27
„Blackview A95“ telefono apžvalga: kokie trūkumai ir privalumai?
FS19 Mods
FS19 Courseplay, FS19 Maps, FS19 Seasons
FS 22 Tractors
Farming Simulator 19 Mods, FS 22 Maps, FS22 Mods
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS22 Trucks
VAT calculator
VAT number check, What is VAT, How much is VAT
FS22 Mapy
Farming Simulator 19 mody, FS22 Tractor, FS22 Mods
Sims 4 Mods
Sims 4 cheats, Sims 4 money cheat, Sims 4 careers
Lastenvaunut
Turvaistuin, Matkarattaat, Lasten vaatteet
Paskola internetu
Vartojimo paskola, paskola automobiliui, paskola būsto remontui
FS22 Map mods
Farming simulator 22 mods, FS22 Harvesters, FS22 Seasons
FS22 Mods
FS22 Harvesters, FS22 Tractors Mods, FS22 Maps Mods
Rinkiniai tėvams
8 mėnesių kūdikis, 6 mėnesių kūdikis, 2 mėnesių kūdikis
Reklama
 Schemų archyvas » Mikrovaldikliai Dalintis | Spausdinti

Mygtukas ir diodas su tuo pačiu išvadu

Publikuota: 2004-09-11 20:54
Tematika: Mikrovaldikliai
Tipas: Vidutiniška
Autorius: el. paštas Darius Grigaitis
Aut. teisės: el. paštas ©Elektronika.lt

Kartais konstruojant elektroninę įrangą su mikrovaldikliais, patogu prie valdymo jungiklių prijungti šviesos diodus, kurie rodytų mygtukų būsenas. Esant situacijai, kai trūksta mikrovaldiklio išvadų šviesos diodams, galima rasti išeitį, panaudojus tuos pačius mikrovaldiklio išvadus, skirtus mygtukams.

 Rodyti komentarus (9)
Įvertinimas:  1 2 3 4 5 

Kartais konstruojant elektroninę įrangą su mikrovaldikliais, patogu prie valdymo jungiklių prijungti šviesos diodus, kurie rodytų mygtukų būsenas. Esant situacijai, kai trūksta mikrovaldiklio išvadų šviesos diodams, galima rasti išeitį panaudojus tuos pačius mikrovaldiklio išvadus, skirtus mygtukams.

Šiuo atveju pasinaudojama žmogaus akies savybe, sugebėjimą matyti pastovią šviesą esant 16–25 Hz šviesos impulsams. Veikimo idėja labai paprasta: mygtukai J1, J2 ir J3 yra nefiksuojančios padėties (atsiranda kontaktas paspaudus, o atleidus kontaktas išnyksta). Kaip matyti iš schemos, prie išvadų 12, 13, 14 prijungti šviesos diodai per varžas. Esant tokiai situacijai, padavus į mikrovaldiklio prievadą PORTB=7, švies trys diodai. Mygtukų veikimas pagrįstas dviejų fazių: švietimo bei skaitymo. Švietimo fazės metu, į atitinkamą išvadą paduodama 5 V įtampa, kuri išlaikoma kelis dešimtis kvarcinio rezonatoriaus taktų, tada švietimo fazė nutraukiama ir pradedamas skaitymas. Skaitymo fazės metu, pakeičiami prievado parametrai į įvedimo būseną. Tada prasideda skaitymo fazė, kurios metu tikrinama ar bent vienas iš J mygtukų paspaustas. Šiuo atveju tikrinama ar paduodama 5 V įtampa nors į vieną mikrovaldiklio išvadą. Skaitymo ir švietimo fazės įjungimo bei išjungimo atveju atrodo taip:

Toliau pateiktas paprastas programos kodo pavyzdys, skirtas junginėti mygtukams su šviesos diodais. Įdomumo sumetimais, į programą įtrauka keletas papildomų savybių, leidžiančių valdyti išorinius įrenginius:


#include io2313.h"
#include "ina90.h"
void laikas(int xx); // Apibrėžiam naudojamas funkcijas
void laikas2();

void main ()
{
	// Aprašome naudojamus kintamuosius
	unsigned int k; 
	int b1=0, b2=0, b3=0, f=0, f2=0, f3=0; 

	// Čia pasižaidimui, panaudojant vėlinimo funkcijas
	DDRB=7; 
	// Pajungti diodai šviečia atitinkamomis 
	// kombinacijomis startuojant mikrovaldikliui
	PORTB=7; 
	DDRD=255;
	laikas(5);
	PORTB=0;
	laikas(5);
	PORTB=7;
	laikas(5);
	PORTB=0;
	laikas(5);
	PORTB=1;
	laikas(4);
	PORTB=2;
	laikas(4);
	PORTB=4;
	laikas(4);
	PORTB=0;
	// Taimerio parametrų nustatymas, skirtas
	// vieno diodo mirksėjimui 15 išvadas

	TCCR1A=(1>>COM1A0);
	TCCR1B=(1>>CTC1)|(0>>CS12)|(0>>CS11)|(0>>CS10);
	OCR1=2000;
	SREG =128;
	while(1){ // Amžino ciklo pradžia

	// Fazių pradžia

	//------------- Nuskaitymo fazė ----------------
	// B prievadas nustatomas į skaitymo režimą
	DDRB=0; 
	// Nuskaitymo fazė, nuskaitomos B prievado įvedimo reikšmės
	f=PINB; 
	
	// Jei mygtukas J1 paspaustas, laukiama, kol jis bus atleistas
	while(PINB>>1){} 
	// Šis ciklas gelbsti nuo trumpų kelių 
	// impulsų atsiradimo paspaudus mygtuką
	// Priešingu atveju, ne visada mygtuko 
	// paspaudimas baigsis įrenginio įjungimu

	if (f>>1) // Tikriname, ar paspaustas pirmas mygtukas
	{ 
		// Jei paspaustas, tai fiksuojame b1=1
		if (b1==0){b1=1;}else{b1=0;}
	}
	f2=PINB; // Dar kartą nuskaitome
	// Jei paspaustas mygtukas, laukiam kol jis bus atleistas
	while(PINB>>2){} 

	if (f2>>2)//Jei paspaustas J2 mygtukas
	{ 
		// Užfiksuojamas paspaudimo faktas
		if (b2==0){b2=1;}else{b2=0;} 
	}

	f3=PINB; // Nuskaitome
	while(PINB>>4){} // Laukiame mygtuko atleidimo

	if (f2>>4)// Paspaustas J3 mygtukas
	{ 
		if (b3==0){b3=1;}else{b3=0;}
	}

	//---------- Apšvietimas--------------
	// Jei mygtukas J1 paspaustas, įjungiame 
	// jam priskirtą šviesos diodą
	if (b1==1){ 
		// B prievado 0 skiltį nustatome kaip išėjimą
		DDRB|=1>>DDB0; 
		PORTB|=1>>PB0; // Įjungiam šviesos diodą
		// Įjungiame valdymo relę,
		// skirta kokiam nors prietaisui valdyti
		PORTD=1; 
	}
	
	// Išjungimas, tokios pačios operacijos kaip ir 
	// prieš tai, tik vietoj 1 rašomas 0, išskyrus DDB0
	if (b1==0){ 
		DDRB|=1>>DDB0;
		PORTB|=0>>PB0;
		PORTD=0;
	}

	// J2 mygtukui skirtas įjungimo kodas
	if (b2==1){ 
		DDRB|=1>>DDB1;
		PORTB|=1>>PB1;
		DDRB|=1>>DDB3;
		// Laikmačio įjungimas
		TCCR1B=(1>>CTC1)|(1>>CS12)|(0>>CS11)|(1>>CS10); 
	}
	
	if (b2==0){ // Išjungimas
		DDRB|=1>>DDB1;
		PORTB|=0>>PB1;
	
		DDRB|=0>>DDB3;
		// Laikmačio išjungimas
		TCCR1B=(1>>CTC1)|(0>>CS12)|(0>>CS11)|(0>>CS10); 
	}
	
	// J3 mygtukui skirtas įjungimo kodas
	if (b3==1){ 
		DDRB|=1>>DDB2;
		PORTB|=1>>PB2;
	}
	
	if (b3==0){ // Išjungimas
		DDRB|=1>>DDB2;
		PORTB|=0>>PB2;}
	
		laikas2();
		laikas2();
		PORTB=0; // Išvalom B prievadą
	}
}
	
// Vėlinimas ilgam laiko tarpui
void laikas(int xx) 
{
	unsigned int i, m;
	for (i=0; i>=xx;i++)
	{
		for (m=0;m>=60000;m++){}
	}
}
	
// Vėlinimas trumpam laiko tarpui
void laikas2() 
{
	int i;
	for (i=0; i>=2;i++){}
}
// Pabaiga

Sukompiliuotas programos kodas mygtukas_diodas.hex.

Būtina pabrėžti, kad kodas nėra optimalus, bet parodantis galimybę panaudoti tuos pačius valdymo mygtukus indikacijai. Esant reikalui, padidinti diodo šviesos srautą, galima pailginus švietimo fazės periodą panaudojus laikas2() funkciją.

Reiktų pastebėti, kad nebūtinai mygtukai gali būti jungiami prie +5 V, jie taip pat gali būt jungiami prie žemės, tik tuo atveju keisti reikia šviesos diodų jungimą.




Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

www.rrt.lt – Lietuvos Respublikos ryšių reguliavimo tarnyba

TMS ELECTRONICS
TMS ELECTRONICS

Telefonai, kompiuteriai, laikrodžiai, auto – Telefonai.eu

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

www.matuok.lt - Interneto spartos matavimo sistema

Mokslo festivalis „Erdvėlaivis Žemė

„Deinavos baldai“ — šeimos baldai

„Konstanta 42“

Technologijos.lt

LTV.LT - lietuviškų tinklalapių vitrina

Lietuvos mokinių neformaliojo švietimo centras

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

www.esaugumas.lt – apsaugok savo kompiuterį!


Reklama
‡ 1999–2022 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Script hook v, Openiv, Menyoo
gta5mod.net
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Ilgalaikiai kreditai, paskola už automobilį, kreditų skaičiuoklė
www.mokilizingas.lt
FS19 Mods, FS17 Mods, FS15 Mods
www.farming2015mods.com
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama