ఈ ప్రాజెక్ట్లో, మేము ATMEGA8 మైక్రోకంట్రోలర్ మరియు ఫైర్ సెన్సార్ ఉపయోగించి ఫైర్ అలర్ట్ సిస్టమ్ను తయారు చేయబోతున్నాము. ఫైర్ సెన్సార్ ఏ రకమైనది అయినా, మేము ఐఆర్ (ఇన్ఫ్రారెడ్) ఆధారిత ఫైర్ సెన్సార్ను ఉపయోగిస్తున్నాము. ఐఆర్ ఆధారిత ఫైర్ సెన్సార్లలో ఎక్కువగా లోపాలు ఉన్నప్పటికీ, అగ్నిని గుర్తించడానికి ఇది చౌకైన మరియు సులభమైన మార్గం.
ఐఆర్ బేస్డ్ ఫైర్ సెన్సార్లకు తక్కువ సెన్సింగ్ దృష్టి ఉంది, కాబట్టి మేము ఫైర్ సెన్సార్ను సర్వో మోటారులో మౌంట్ చేయబోతున్నాం. సర్వో 180 డిగ్రీల లోలకం భ్రమణాలను చేయనుంది. ఫైర్ సెన్సార్ దానిపై అమర్చబడితే, మనకు 270+ డిగ్రీల ఫైర్ సెన్సింగ్ దృష్టి లభిస్తుంది. సర్వో నిరంతరం తిరుగుతూ ఉంటుంది, తద్వారా పూర్తి గది ఫైర్ హెచ్చరిక వ్యవస్థను ఇస్తుంది. మరింత ఖచ్చితత్వం కోసం మేము సిస్టమ్కు పొగ సెన్సార్ను జోడించవచ్చు. దానితో మనం ఎక్కువ ఖచ్చితత్వాన్ని పొందవచ్చు.
సర్క్యూట్ భాగాలు
హార్డ్వేర్: + 5v విద్యుత్ సరఫరా, సర్వో మోటార్ (sg90), ATMEGA8, BUZZER, బటన్, 10KΩ రెసిస్టర్, 1KΩ రెసిస్టర్, 220Ω రెసిస్టర్, 100nF కెపాసిటర్, AVR-ISP PROGRAMMER.
సాఫ్ట్వేర్: అట్మెల్ స్టూడియో 6.1, ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్.
సర్క్యూట్ రేఖాచిత్రం & పని
సర్వో షాఫ్ట్ ఎడమవైపుకి వెళ్ళాలంటే మనం 1/18 రేషన్ ఇవ్వాలి, మరియు షాఫ్ట్ ఎడమ వైపుకు తిప్పాలంటే 2/18 డ్యూటీ రేషన్ తో పిడబ్ల్యుఎం ఇవ్వాలి. మేము ఒక PWM సిగ్నల్ ఇవ్వడానికి ATMEGA8 ను ప్రోగ్రామ్ చేయబోతున్నాము, ఇది సర్వో షాఫ్ట్ ను 180 కి మరియు తరువాత కొంత ఆలస్యం తరువాత 0 కి తిరుగుతుంది.
పూర్తి సమయంలో ఫైర్ సెన్సార్ ఆన్ అవుతుంది మరియు కంట్రోలర్ పూర్తి అప్రమత్తంగా ఉంటుంది. అగ్ని ఉంటే, కంట్రోలర్ గుర్తించినప్పుడు సెన్సార్ ఈ పల్స్ను అధిక పల్స్ అందిస్తుంది. దానికి అనుసంధానించబడిన రీసెట్ బటన్ను నొక్కడం ద్వారా అలారం ఆపివేయబడుతుంది.
మూడు PWM ఛానెల్ల కోసం atmega8 లో, మేము మూడు పిన్లను నియమించాము. మేము ఈ పిన్స్ వద్ద మాత్రమే PWM అవుట్పుట్ తీసుకోవచ్చు. మేము PWM1 ను ఉపయోగిస్తున్నందున మేము OC1A పిన్ (PORTB 1 st PIN) వద్ద PWM సిగ్నల్ తీసుకోవాలి. సర్క్యూట్ రేఖాచిత్రంలో చూపినట్లుగా, మేము సర్వో సిగ్నల్ను OC1A పిన్కు కనెక్ట్ చేస్తున్నాము. ఇక్కడ మరొక విషయం మూడు పిడబ్ల్యుఎం ఛానెల్స్, రెండు 8-బిట్ పిడబ్ల్యుఎం ఛానెల్స్ మరియు ఒక 16-బిట్ పిడబ్ల్యుఎం ఛానల్. మేము ఇక్కడ 16-బిట్ పిడబ్ల్యుఎం ఛానెల్ని ఉపయోగించబోతున్నాం.
ATMEGA లో PWM ను ఉత్పత్తి చేయడానికి రెండు మార్గాలు ఉన్నాయి, అవి
1. దశ సరైన పిడబ్ల్యుఎం.
2. ఫాస్ట్ పిడబ్ల్యుఎం.
ఇక్కడ మనం ప్రతిదీ సరళంగా ఉంచబోతున్నాం, కాబట్టి పిడబ్ల్యుఎం సిగ్నల్ ఉత్పత్తి చేయడానికి ఫాస్ట్ పిడబ్ల్యుఎం పద్ధతిని ఉపయోగించబోతున్నాం.
మొదట పిడబ్ల్యుఎం యొక్క ఫ్రీక్వెన్సీని ఎన్నుకోండి, ఇది సాధారణంగా అప్లికేషన్పై ఆధారపడి ఉంటుంది, ఎల్ఇడి కోసం 50 హెర్ట్జ్ కంటే ఎక్కువ ఫ్రీక్వెన్సీ చేస్తుంది. ఆ కారణంగా మేము 1MHZ కౌంటర్ గడియారాన్ని ఎంచుకుంటున్నాము.కాబట్టి మేము ప్రీస్కాలర్ ఎంచుకోము. ప్రీస్కాలర్ అనేది తక్కువ కౌంటర్ గడియారాన్ని పొందడానికి ఎంపిక చేయబడిన సంఖ్య. ఉదాహరణకు, ఓసిలేటర్ గడియారం 8Mhz అయితే, కౌంటర్ కోసం 1MHz గడియారాన్ని పొందడానికి మేము '8' యొక్క ప్రీస్కాలర్ను ఎంచుకోవచ్చు. ప్రీస్కాలర్ ఫ్రీక్వెన్సీ ఆధారంగా ఎంపిక చేయబడింది. మనకు ఎక్కువ కాల వ్యవధి పప్పులు కావాలంటే మనం ఎక్కువ ప్రీస్కాలర్ ఎంచుకోవాలి.
ఇప్పుడు ATMEGA నుండి 50Hz గడియారం యొక్క వేగవంతమైన PWM ను పొందడానికి, మేము “ TCCR1B ” రిజిస్టర్లో తగిన బిట్లను ప్రారంభించాలి.
ఇక్కడ, CS10, CS11, CS12 (YELLOW) - కౌంటర్ గడియారాన్ని ఎంచుకోవడానికి ప్రీస్కాలర్ను ఎంచుకోండి. తగిన ప్రీస్కాలర్ కోసం పట్టిక క్రింద పట్టికలో చూపబడింది. కాబట్టి ఒకదాన్ని ప్రీస్కేలింగ్ చేయడానికి (ఓసిలేటర్ క్లాక్ = కౌంటర్ క్లాక్).
కాబట్టి CS10 = 1, ఇతర రెండు బిట్స్ సున్నా.
RED (WGM10-WGM13): వేగవంతమైన PWM కోసం దిగువ పట్టిక ఆధారంగా తరంగ రూప తరం మోడ్లను ఎంచుకోవడానికి మార్చబడతాయి. మాకు WGM11, WGM12 మరియు WGM12 1 కు సెట్ చేయబడ్డాయి.
పిడబ్ల్యుఎం అనేది వేర్వేరు డ్యూటీ రేషన్ లేదా వేర్వేరు టర్న్ ఆన్ టర్న్ ఆఫ్ టైమ్లతో కూడిన సిగ్నల్ అని ఇప్పుడు మనకు తెలుసు. ఇప్పటి వరకు మేము PWM యొక్క ఫ్రీక్వెన్సీ మరియు రకాన్ని ఎంచుకున్నాము. ఈ అధ్యాయం యొక్క ప్రధాన ఇతివృత్తం ఈ విభాగంలో ఉంది. వేర్వేరు డ్యూటీ రేషన్ పొందడానికి, మేము 0 మరియు 255 మధ్య విలువను ఎంచుకోబోతున్నాము (8 బిట్ కారణంగా 2 ^ 8). కౌంటర్ 0 నుండి లెక్కింపు ప్రారంభించి విలువ 180 కి చేరుకున్నప్పుడు, మేము 180 విలువను ఎంచుకుంటామని చెప్పండి, అవుట్పుట్ ప్రతిస్పందన ప్రారంభించబడవచ్చు. ఈ ట్రిగ్గర్ విలోమం లేదా విలోమం కానిది కావచ్చు. అంటే the ట్పుట్ను కౌంట్కు చేరుకున్నప్పుడు పైకి లాగమని చెప్పవచ్చు లేదా గణనను చేరుకున్నప్పుడు క్రిందికి లాగమని చెప్పవచ్చు.
గ్రీన్ (COM1A1, COM1A0): పైకి లేదా క్రిందికి లాగడం యొక్క ఈ ఎంపికను CM1A0 మరియు CM1A1 బిట్స్ ఎంచుకుంటాయి.
పట్టికలో చూపినట్లుగా, అవుట్పుట్ పోల్చినప్పుడు అధికంగా ఉండటానికి మరియు అవుట్పుట్ గరిష్ట విలువ వరకు ఎక్కువగా ఉంటుంది. అలా చేయడానికి మేము ఇన్వర్టింగ్ మోడ్ను ఎంచుకోవాలి, కాబట్టి COM1A0 = 1; COM1A1 = 1.
దిగువ చిత్రంలో చూపినట్లుగా, OCR1A (అవుట్పుట్ కంపేర్ రిజిస్టర్ 1A) అనేది వినియోగదారు ఎంచుకున్న విలువను నిల్వ చేసే బైట్. కాబట్టి మేము OCR1A = 180 ను మార్చుకుంటే, కౌంటర్ 0 నుండి 180 కి చేరుకున్నప్పుడు నియంత్రిక మార్పు (అధిక) ను ప్రేరేపిస్తుంది.
OCR1A 180 డిగ్రీకి 19999-600 మరియు 0 డిగ్రీకి 19999-2400 ఉండాలి.