Recent Changes - Search:
<^< Switch Debouncing | Course index | Adding Outputs >^>

Introduction to Microcontroller Programming * Course Index * Introduction * About the Author * About this Course * Feedback * Course Navigation * Quick Course Navigation * How to use this Course * Acronyms Used and Course Conventions

About PICmicro Chips * What is a PICmicro? * Microcontrollers * Digital versus Analogue * Inputs and Outputs * Memory * Programming * 16F1937 Architecture

Clocking Your PICmicro Devices * Introduction * The Clock Circuit * Clock Settings * Clock Confusion

E-Blocks * Introduction to E-blocks * Using E-blocks * E-blocks Boards

Flowcode Step By Step * Introduction to Flowcode * Basic Flowcode Functions * Digital Outputs * Digital Inputs * Basic Loops * The LCD Display * Binary Numbers * Decisions * Goto (Connection Point) * 7-Segment Displays * Software Macro * Strings and Memory * A Simple Hi-Fi

PICmicro Projects * Introduction to PICmicro Projects * Construction Methods * Choosing a Power Source * Adding Inputs * Input Conditioning ## Switch Bounce ## Switch Debouncing ##

Schmitt Trigger * Adding Outputs * Adding Drivers

Labs * Introduction and Lesson Plan * 1. Output * 2. Delay * 3. Connection Point * 4. Calculations * 5. Loop * 6. Input * 7. Decision * 8. LCD * 9. Keypad * 10. Analogue + EEPROM * 11. Software Macro * 12. External Interrupt * 13. Timer Interrupt

(:Summary:Contains the 'action' links (like Browse, Edit, History, etc.), placed at the top of the page, see site page actions:) (:comment This page can be somewhat complex to figure out the first time you see it. Its contents are documented at PmWiki.SitePageActions if you need help. :) * Print (:comment (:if group Site,SiteAdmin,Cookbook,Profiles,PmWiki*:) (:comment delete if and ifend to enable backlinks:) * %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]] (:ifend:) :) * Login

Schmitt Trigger

<^< Switch Debouncing | Course Index | Adding Outputs >^>(:nl:)

Imagine for a moment a home environment control system that needs to switch on the lights on when it gets dark, and switch on the heating when the temperature drops. The system relies on signals from a light sensing unit and a temperature sensing unit - these are analogue sensors, and not switches. Switches have only two possible states - on and off. Ideally, a switch unit outputs either 0V, or the full power supply voltage, (logic 0 or logic 1 as we saw earlier.) These analogue sensors can give out any voltage between 0V and the full power supply voltage.

Some PICmicro chips accept analogue input signals, and have a built in analogue-to-digital converter, which can be used to produce the switching action we want.

For other PICmicro chips, we need to add another sub-system to the sensors, to make them work like a switch. One such sub-system is called a Schmitt trigger.

The output of the Schmitt trigger circuit is either a high voltage (near to the full power supply voltage,) or a low voltage (near to 0V.) This gives the switching behaviour we discussed earlier.

The input voltage from the analogue sensor decides which of these outputs is produced. There are two fixed threshold voltages associated with the Schmitt trigger. When the voltage from the sensor increases and reaches the upper threshold, the output is the high voltage (logic 1). When the voltage from the analogue sensor drops below the lower threshold, the output changes to the low voltage (logic 0.)

The following graphs show this behaviour.

The signal from the sensor wobbles around, and crosses the thresholds several times, at points X and Y, but these have no effect on the output. It is only when the signal crosses for the first time that any change in the output takes place.

The output of the Schmitt trigger can be used to switch lights / heaters etc. off and on as indicated. (:nl:)(:table style="clear:both":)

(:Summary: Website page footer:)

Print - (:comment (:if group Site,SiteAdmin,Cookbook,Profiles,PmWiki*:) (:comment delete if and ifend to enable backlinks:) %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]] (:ifend:) :) Search - Login

Page last modified on September 08, 2011, at 02:42 PM