{"title":"Sensors \u0026 Modules","description":"\u003cp\u003eSensors, Hall effect sensors, relays, displays and add-on modules for Arduino, ESP32 and Raspberry Pi projects.\u003c\/p\u003e","products":[{"product_id":"sc8002b-audio-module","title":"Keyestudio SC8002B Audio Amplifier Module with Speaker","description":"\u003cdiv class=\"nznpd\"\u003e \u003cdiv class=\"nznpd__lead\"\u003e \u003cp class=\"nznpd__intro\"\u003eA mono class AB amplifier board with the speaker already fitted, so a microcontroller gets an audible output from three wires and one line of code. The SC8002B drives the onboard 23mm mylar cone to about 80dB at 10cm, and a trimmer pot on the board sets the level without touching your sketch. Runs from 5V and takes its signal straight from a 3.3V or 5V logic pin.\u003c\/p\u003e \u003c\/div\u003e \u003csection class=\"nznpd__block\"\u003e \u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e \u003cdiv class=\"nznpd__specs\"\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eKeyestudio SC8002B\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eAmplifier IC\u003c\/span\u003e\u003cstrong\u003eSC8002B, mono class AB\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating voltage\u003c\/span\u003e\u003cstrong\u003e5V DC\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply current\u003c\/span\u003e\u003cstrong\u003e500mA or more\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMaximum output power\u003c\/span\u003e\u003cstrong\u003e2W\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSignal gain\u003c\/span\u003e\u003cstrong\u003eApprox. 8.5x\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eVolume control\u003c\/span\u003e\u003cstrong\u003eOnboard trimmer potentiometer\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003e3-pin header, S \/ V \/ G\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating temperature\u003c\/span\u003e\u003cstrong\u003e0°C to 40°C\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker type\u003c\/span\u003e\u003cstrong\u003eHN2308-01-R mylar cone\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker impedance\u003c\/span\u003e\u003cstrong\u003e8Ω, ±15%\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker rated power\u003c\/span\u003e\u003cstrong\u003e0.1W, 0.15W max\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker frequency range\u003c\/span\u003e\u003cstrong\u003e800Hz to 4000Hz\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker resonant frequency\u003c\/span\u003e\u003cstrong\u003e1500Hz, ±20%\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSpeaker sound output\u003c\/span\u003e\u003cstrong\u003e80dB min. at 0.1W, 10cm, 1.5kHz\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard size\u003c\/span\u003e\u003cstrong\u003e47 x 30 x 13mm, 8.4g\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard marking\u003c\/span\u003e\u003cstrong\u003ekeyestudio logo, rear silkscreen\u003c\/strong\u003e\n\u003c\/div\u003e \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCompliance\u003c\/span\u003e\u003cstrong\u003eRoHS\u003c\/strong\u003e\n\u003c\/div\u003e \u003c\/div\u003e \u003c\/section\u003e \u003csection class=\"nznpd__block\"\u003e \u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e \u003cdiv class=\"nznpd__ds\"\u003e \u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/keyestudio-sc8002b-datasheet.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the Keyestudio SC8002B datasheet (PDF)\"\u003e \u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e \u003cspan\u003eFull technical datasheet\u003c\/span\u003e \u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e \u003c\/a\u003e \u003c\/div\u003e \u003c\/section\u003e \u003csection class=\"nznpd__block\"\u003e \u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e \u003cdiv class=\"nznpd__included\"\u003e \u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e \u003cdiv\u003e\n\u003cstrong\u003eKeyestudio SC8002B amplifier module\u003c\/strong\u003e\u003cp\u003eSpeaker and 3-pin header already soldered, ready to wire.\u003c\/p\u003e\n\u003c\/div\u003e \u003c\/div\u003e \u003c\/section\u003e \u003csection class=\"nznpd__block\"\u003e \u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e \u003cdiv class=\"nznpd__uses\"\u003e \u003cdiv class=\"nznpd__use\"\u003eTones and melodies from the Arduino tone() function\u003c\/div\u003e \u003cdiv class=\"nznpd__use\"\u003eAudible alarms on a sensor or threshold trigger\u003c\/div\u003e \u003cdiv class=\"nznpd__use\"\u003eButton clicks, error beeps and status chimes\u003c\/div\u003e \u003cdiv class=\"nznpd__use\"\u003eSound feedback on robots and interactive builds\u003c\/div\u003e \u003cdiv class=\"nznpd__use\"\u003eAudio output for a DFPlayer Mini or similar source module\u003c\/div\u003e \u003cdiv class=\"nznpd__use\"\u003eSTEM kits and classroom electronics projects\u003c\/div\u003e \u003c\/div\u003e \u003c\/section\u003e \u003csection class=\"nznpd__block\"\u003e \u003cdiv class=\"nznpd__qs\"\u003e \u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e \u003col class=\"nznpd__steps\"\u003e \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTurn the volume down first\u003c\/strong\u003e\u003cp\u003eSet the blue trimmer pot to minimum before you apply power. The silkscreen arrow marked MAX shows which way is louder. Bringing it up from zero avoids driving the small cone hard on the first power-up.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eWire the three pins\u003c\/strong\u003e\u003cp\u003eGo by the labels printed on the board rather than by position: S is signal, V is 5V, G is ground. With the speaker to the left, as in the photos, the header runs down the right edge reading S, then V, then G.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower it from 5V\u003c\/strong\u003e\u003cp\u003eUse the 5V rail, not 3.3V. Allow for 500mA or more on peaks. A board's onboard regulator can brown out if it is also running other loads, so take 5V from the supply directly on bigger projects.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSend it a square wave\u003c\/strong\u003e\u003cp\u003eOn Arduino, call tone(pin, frequency) on the pin wired to S, and noTone(pin) to stop. Any PWM capable pin works. On ESP32 use the LEDC PWM API, and on a Pi use software or hardware PWM.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the working level\u003c\/strong\u003e\u003cp\u003eWith a tone playing, bring the pot up until it is loud enough. Backing off slightly from the point where it starts to sound harsh gives the cleanest result.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e \u003c\/ol\u003e \u003c\/div\u003e \u003c\/section\u003e \u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The 2W maximum output is the amplifier's ceiling, not the onboard speaker's. The fitted cone is a 0.15W maximum part, so it will distort well before the amplifier runs short of headroom. Set the trimmer with a tone already playing and back off from the point where it turns harsh.\u003c\/p\u003e \u003c\/div\u003e","brand":"Keyestudio","offers":[{"title":"Default Title","offer_id":42644996587616,"sku":"MOD-SC8002B-AMP","price":11.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/keyestudio-sc8002b-hero.jpg?v=1787301480"},{"product_id":"ah3503-linear-hall-effect-sensor","title":"AH3503 Linear Hall Effect Sensor - TO-92, 5V Analogue","description":"\u003cstyle\u003e\n.nzndemo{--demo-orange:#F57C00;--demo-ink:#0F172A;--demo-muted:#5B6573;--demo-line:#E8ECF0;--demo-soft:#F7F8FA;border:2px solid var(--demo-line);border-radius:14px;padding:20px;background:#fff;color:var(--demo-ink)}\n.nzndemo,.nzndemo *{box-sizing:border-box}\n.nzndemo__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.7fr);gap:18px;align-items:center}\n.nzndemo__label{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--demo-muted);margin-bottom:10px}\n.nzndemo__slider{width:100%;accent-color:var(--demo-orange);cursor:pointer}\n.nzndemo__ticks{display:flex;justify-content:space-between;margin-top:5px;font-size:12px;color:var(--demo-muted)}\n.nzndemo__track{position:relative;height:24px;margin-top:18px;border:1px solid var(--demo-line);border-radius:999px;background:linear-gradient(90deg,#FDEEEB 0%,#EEF1F4 47%,#EEF1F4 53%,#EAF3FC 100%)}\n.nzndemo__mid{position:absolute;left:50%;top:-4px;bottom:-4px;width:2px;background:#94A3B8}\n.nzndemo__marker{position:absolute;left:50%;top:50%;width:18px;height:18px;border:3px solid var(--demo-orange);border-radius:50%;background:#fff;transform:translate(-50%,-50%);transition:left .15s ease}\n.nzndemo__readout{display:grid;gap:9px;padding:15px;background:var(--demo-soft);border:1px solid var(--demo-line);border-radius:10px}\n.nzndemo__row{display:flex;justify-content:space-between;gap:14px;font-size:13px}\n.nzndemo__row span{color:var(--demo-muted)}\n.nzndemo__row strong{text-align:right}\n.nzndemo__intro{margin:0 0 18px;font-size:14px;line-height:1.6;color:var(--demo-ink)}\n.nzndemo__message{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--demo-muted)}\n.nzndemo__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}\n.nzndemo__step{padding:11px 12px;border:1px solid var(--demo-line);background:var(--demo-soft);border-radius:9px;font-size:12.5px;line-height:1.5;color:var(--demo-muted)}\n.nzndemo__step strong{display:block;margin-bottom:3px;color:var(--demo-ink)}\n.nzndemo__caption{margin:12px 0 0;font-size:11.5px;color:var(--demo-muted)}\n@media(max-width:749px){.nzndemo{padding:16px}.nzndemo__grid,.nzndemo__steps{grid-template-columns:1fr}}\n@media(prefers-reduced-motion:reduce){.nzndemo__marker{transition:none}}\n\u003c\/style\u003e\n\n\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe AH3503 is a ratiometric linear Hall effect sensor in a three-pin TO-92-style package. It produces a continuous analogue voltage that moves above or below about half the supply as magnetic field strength and polarity change. Use it with a regulated 5V supply and an analogue input for position, speed and magnetic-field experiments.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePart marking\u003c\/span\u003e\u003cstrong\u003e503 \/ 118\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor type\u003c\/span\u003e\u003cstrong\u003eLinear ratiometric Hall effect\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003eContinuous analogue voltage\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply voltage\u003c\/span\u003e\u003cstrong\u003e4.5V to 6.0V DC, 5V recommended\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eNo-field output\u003c\/span\u003e\u003cstrong\u003eApproximately VCC \/ 2\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eField response\u003c\/span\u003e\u003cstrong\u003eResponds to north and south magnetic fields\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePinout\u003c\/span\u003e\u003cstrong\u003eMarked face forward: 1 VCC, 2 GND, 3 OUT\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePackage\u003c\/span\u003e\u003cstrong\u003eTO-92 style, three-pin through-hole\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePin pitch\u003c\/span\u003e\u003cstrong\u003eApproximately 1.27mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRecommended bypass\u003c\/span\u003e\u003cstrong\u003e100nF between VCC and GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003e5V Arduino\u003c\/span\u003e\u003cstrong\u003eConnect OUT to an analogue input\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003e3.3V ADCs\u003c\/span\u003e\u003cstrong\u003eUse a suitable divider or external ADC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eTry it: move a magnet past the sensor\u003c\/h3\u003e\n\u003cdiv class=\"nzndemo\" data-ah3503-demo\u003e\n\u003cp class=\"nzndemo__intro\"\u003eImagine the sensor is connected to Arduino analogue input A0 and powered from 5V. Move the slider to see what changes when a north or south pole approaches the flat marked face.\u003c\/p\u003e\n\u003cdiv class=\"nzndemo__grid\"\u003e\n\u003cdiv\u003e\n\u003clabel class=\"nzndemo__label\" for=\"ah3503-field\"\u003eMove the magnet\u003c\/label\u003e\n\u003cinput class=\"nzndemo__slider\" id=\"ah3503-field\" type=\"range\" min=\"-100\" max=\"100\" value=\"0\" step=\"1\" aria-label=\"Move a magnet from north pole through no field to south pole\"\u003e\n\u003cdiv class=\"nzndemo__ticks\"\u003e\n\u003cspan\u003eNorth pole closer\u003c\/span\u003e\u003cspan\u003eNo magnet\u003c\/span\u003e\u003cspan\u003eSouth pole closer\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__track\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"nzndemo__mid\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__marker\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__readout\" role=\"status\" aria-live=\"polite\"\u003e\n\u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan\u003eMagnet position\u003c\/span\u003e\u003cstrong data-demo-pole\u003eNo magnet nearby\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan\u003eSensor output\u003c\/span\u003e\u003cstrong data-demo-output\u003eNear half the supply\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan\u003eExample analogRead\u003c\/span\u003e\u003cstrong data-demo-reading\u003eAbout 512\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan\u003eWhat it means\u003c\/span\u003e\u003cstrong data-demo-direction\u003eThis is your zero reading\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"nzndemo__message\" data-demo-message\u003eStart with no magnet nearby. Read A0 and save that number as zero before taking measurements.\u003c\/p\u003e\n\u003cdiv class=\"nzndemo__steps\"\u003e\n\u003cdiv class=\"nzndemo__step\"\u003e\n\u003cstrong\u003e1. Find zero\u003c\/strong\u003eLeave the magnet away from the sensor and record the A0 reading.\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__step\"\u003e\n\u003cstrong\u003e2. Bring in a pole\u003c\/strong\u003eA north pole makes the reading fall. A south pole makes it rise.\u003c\/div\u003e\n\u003cdiv class=\"nzndemo__step\"\u003e\n\u003cstrong\u003e3. Compare readings\u003c\/strong\u003eThe farther the reading moves from zero, the stronger the sensor response in that setup.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"nzndemo__caption\"\u003eThe analogRead numbers are a simple illustration for a 5V, 10-bit Arduino. They are not calibrated field measurements. Exact sensitivity and range vary between AH3503 production revisions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e5×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eAH3503 linear Hall effect sensors\u003c\/strong\u003e\u003cp\u003eSold per sensor with a minimum order of five, supplied loose in an antistatic bag.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003ePosition experiments\u003c\/strong\u003e\u003cp\u003eTrack a moving magnet without mechanical contact.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eSpeed and RPM projects\u003c\/strong\u003e\u003cp\u003eDetect magnet passes and apply a threshold in your code.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eJoystick and throttle prototypes\u003c\/strong\u003e\u003cp\u003eMeasure smooth magnet movement with an analogue input.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eMagnetic-field demonstrations\u003c\/strong\u003e\u003cp\u003eObserve field strength and polarity around permanent magnets.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eArduino projects\u003c\/strong\u003e\u003cp\u003eRead the output directly from a 5V analogue input.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eNon-contact feedback\u003c\/strong\u003e\u003cp\u003eBuild simple sensing arrangements without a rubbing contact.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eOrient the sensor\u003c\/strong\u003e\u003cp\u003eHold the flat marked face toward you with the legs pointing down.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power\u003c\/strong\u003e\u003cp\u003eConnect pin 1 to a regulated 5V supply and pin 2 to ground.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the output\u003c\/strong\u003e\u003cp\u003eConnect pin 3 to a high-impedance analogue input such as Arduino A0.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eAdd bypassing\u003c\/strong\u003e\u003cp\u003ePlace a 100nF capacitor between VCC and GND close to the sensor.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eMeasure the midpoint\u003c\/strong\u003e\u003cp\u003eRecord the no-magnet reading as your zero point, then measure movement above and below it.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eProtect 3.3V inputs\u003c\/strong\u003e\u003cp\u003eWhen using an ESP32 or another 3.3V ADC, use a suitable divider or external ADC on OUT.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e This is an analogue sensor, not a digital switch. Do not connect an LED or other load directly to OUT. Published AH3503 revisions differ in sensitivity, field range and temperature grade, so calibrate the actual sensor in your circuit where precise measurements matter.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nfunction initialise(root){\nvar slider=root.querySelector('.nzndemo__slider');\nvar marker=root.querySelector('.nzndemo__marker');\nvar pole=root.querySelector('[data-demo-pole]');\nvar output=root.querySelector('[data-demo-output]');\nvar reading=root.querySelector('[data-demo-reading]');\nvar direction=root.querySelector('[data-demo-direction]');\nvar message=root.querySelector('[data-demo-message]');\nfunction update(){\nvar value=Number(slider.value);\nmarker.style.left=(10+((value+100)\/200)*80)+'%';\nif(value\u003c0){\npole.textContent='North pole nearby';\noutput.textContent='Below half the supply';\nreading.textContent='Below 512';\ndirection.textContent='Lower than your zero';\nmessage.textContent='A north pole at the marked face makes the A0 reading fall below the no-magnet value.';\n}else if(value\u003e0){\npole.textContent='South pole nearby';\noutput.textContent='Above half the supply';\nreading.textContent='Above 512';\ndirection.textContent='Higher than your zero';\nmessage.textContent='A south pole at the marked face makes the A0 reading rise above the no-magnet value.';\n}else{\npole.textContent='No magnet nearby';\noutput.textContent='Near half the supply';\nreading.textContent='About 512';\ndirection.textContent='This is your zero reading';\nmessage.textContent='Start with no magnet nearby. Read A0 and save that number as zero before taking measurements.';\n}\n}\nslider.addEventListener('input',update);\nupdate();\n}\nvar demos=document.querySelectorAll('[data-ah3503-demo]');\nfor(var i=0;i\u003cdemos.length;i++){if(!demos[i].getAttribute('data-built')){demos[i].setAttribute('data-built','1');initialise(demos[i]);}}\n})();\n\u003c\/script\u003e\n\r\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42757445746784,"sku":"AH3503-HALL-TO92","price":0.59,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/AH3503Hero.png?v=1784949111"},{"product_id":"voltage-detection-module-voltage-sensor-for-arduino-electronic-building-blocks","title":"0-25V DC Voltage Sensor Module for Arduino and ESP32","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eMeasure positive DC voltages with a microcontroller analogue input using this compact passive divider module. The marked 30.0 kΩ and 7.50 kΩ network reduces the input to about one fifth for battery monitoring, supply checks and data logging.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eFunction\u003c\/span\u003e\u003cstrong\u003ePassive positive-DC voltage divider\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard input marking\u003c\/span\u003e\u003cstrong\u003eVCC\u0026lt;25V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDivider network\u003c\/span\u003e\u003cstrong\u003e30.0 kΩ and 7.50 kΩ markings\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eNominal scale factor\u003c\/span\u003e\u003cstrong\u003eInput = S output x 5.0\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInput resistance\u003c\/span\u003e\u003cstrong\u003eAbout 37.5 kΩ\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eProtection\u003c\/span\u003e\u003cstrong\u003eNo isolation or over-voltage clamp\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DC-0-25V-VOLTAGE-SENSOR-Datasheet-v3-r2-2026-09-27.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the DC 0-25V voltage sensor technical datasheet PDF\"\u003e\u003cspan\u003eTechnical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\u003ca id=\"quick-start-guide\" class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DC-0-25V-VOLTAGE-SENSOR-QuickStart-r2-2026-09-27.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the DC voltage sensor Quick Start PDF\"\u003e\u003cspan\u003eQuick Start: first voltage reading\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1x\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eDC voltage divider module\u003c\/strong\u003e\u003cp\u003eScrew terminal and three-pin header fitted. Jumper wires and microcontroller are not included.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eBattery voltage monitoring\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eDC supply checks and logging\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eArduino and ESP32 analogue projects\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck the ADC limit\u003c\/strong\u003e\u003cp\u003eKeep the measured input below both the module's VCC\u0026lt;25V marking and five times the controller ADC full-scale. The lower limit controls.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the measured source\u003c\/strong\u003e\u003cp\u003eConnect measured positive to the VCC screw terminal and measured negative to GND.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the controller\u003c\/strong\u003e\u003cp\u003eConnect S to an analogue input and the header pin marked - to controller ground. Leave the centre + header pin unconnected.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Positive DC only. The centre + header pin is NC and must not be connected to 5 V or 3.3 V. A Raspberry Pi needs a separate ADC. This module is not isolated and is not suitable for mains or safety-critical measurement.\u003c\/p\u003e\n\u003c\/div\u003e\n","brand":"MH-Electronic","offers":[{"title":"Default Title","offer_id":42724740661344,"sku":"MH-VD25-MOD","price":2.29,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/MH-VD25-MOD-Single-Hero-2026-09-27-Live.png?v=1790473007"},{"product_id":"dht22-am2302-temperature-humidity-sensor","title":"DHT22 \/ AM2302 Temperature \u0026 Humidity Sensor Module - 0-100% RH, Pull-Up Fitted","description":"\u003cstyle\u003e.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;line-height:1.6}.nznpd,.nznpd *{box-sizing:border-box}.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}.nznpd strong{color:var(--ink)}.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6}.nznpd__highlights{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:36px}.nznpd__highlights li{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--ink);line-height:1.5;padding:12px 0;border-bottom:1px solid var(--line)}.nznpd__highlights li::before{content:'▸';flex:0 0 auto;color:var(--o);font-size:12px;line-height:1.75}.nznpd__highlights li:nth-last-child(-n+2){border-bottom:none}.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}.nznpd__h{margin:0 0 24px;padding-bottom:10px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}.nznpd__h::before{content:'';flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}.nznpd__spec:nth-child(odd){background:var(--soft)}.nznpd__spec span{color:var(--mut)}.nznpd__spec strong{font-weight:700}.nznpd__dsbar{display:flex;align-items:center;gap:11px;padding:14px 16px;border-top:2px solid var(--line);background:#FFF8F1;text-decoration:none;color:var(--od);font-weight:700;font-size:14px;line-height:1.3;transition:background .16s ease}.nznpd__dsbar:hover{background:#FCEBD8}.nznpd__dsbar svg{flex:0 0 auto;color:var(--o)}.nznpd__dsmeta{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}.nznpd__code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:#fff;border:1px solid #FCE0C6;border-radius:6px;padding:1px 6px;color:var(--od)}@media (prefers-reduced-motion:reduce){.nznpd__dsbar{transition:none}}@media (max-width:749px){.nznpd{padding-left:14px;padding-right:14px}.nznpd__highlights{grid-template-columns:1fr}.nznpd__highlights li:nth-last-child(2){border-bottom:1px solid var(--line)}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}.nznpd__h{margin-bottom:16px}}\u003c\/style\u003e\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe DHT22 measures temperature and humidity and hands back a calibrated digital reading over a single wire, so there is no ADC, no reference voltage and no calibration curve to work out at your end. It covers \u003cstrong\u003e0 to 100% RH\u003c\/strong\u003e and \u003cstrong\u003e-40 to 80°C\u003c\/strong\u003e, holding \u003cstrong\u003e±2% RH\u003c\/strong\u003e through the 20 to 90% band and \u003cstrong\u003e±0.5°C\u003c\/strong\u003e on temperature. This one arrives on a red breakout with the \u003cstrong\u003e5.1k pull-up already fitted\u003c\/strong\u003e and the 3-pin header soldered on, so it goes onto a breadboard or an ESP32 with three jumper wires and nothing else.\u003c\/p\u003e\n\u003cul class=\"nznpd__highlights\"\u003e\n\u003cli\u003eHumidity 0 to 100% RH, ±2% RH through 20 to 90%\u003c\/li\u003e\n\u003cli\u003eTemperature -40 to 80°C, ±0.5°C\u003c\/li\u003e\n\u003cli\u003eResolution 0.1% RH and 0.1°C, 16 bits each\u003c\/li\u003e\n\u003cli\u003eCalibrated digital output on one wire, no ADC needed\u003c\/li\u003e\n\u003cli\u003e5.1k pull-up resistor already fitted on the board\u003c\/li\u003e\n\u003cli\u003eRuns on 3.3V or 5V logic, 3.3 to 5.5V DC in\u003c\/li\u003e\n\u003cli\u003e1.5mA while reading, 50µA sitting idle\u003c\/li\u003e\n\u003cli\u003eCable runs of up to 20 metres\u003c\/li\u003e\n\u003cli\u003e39.7 x 23.4mm with two 3mm mounting holes\u003c\/li\u003e\n\u003cli\u003eNative ESPHome support, Adafruit DHT library on Arduino\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eDHT22, also sold as the AM2302\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensing element\u003c\/span\u003e\u003cstrong\u003eCapacitive humidity sensor and a thermistor, calibrated at the factory\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003eCalibrated digital signal on a single-wire bus, 40-bit frame with checksum\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHumidity range\u003c\/span\u003e\u003cstrong\u003e0 to 100% RH\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHumidity accuracy\u003c\/span\u003e\u003cstrong\u003e±2% RH through 20 to 90% RH, up to ±5% RH outside that band\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTemperature range\u003c\/span\u003e\u003cstrong\u003e-40°C to 80°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTemperature accuracy\u003c\/span\u003e\u003cstrong\u003e±0.5°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eResolution\u003c\/span\u003e\u003cstrong\u003e0.1% RH and 0.1°C, 16 bits each\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSampling rate\u003c\/span\u003e\u003cstrong\u003eOne reading every 2 seconds, roughly 0.5Hz\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating voltage\u003c\/span\u003e\u003cstrong\u003e3.3 to 5.5V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCurrent draw\u003c\/span\u003e\u003cstrong\u003e1.5mA while measuring, 50µA idle\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePull-up resistor\u003c\/span\u003e\u003cstrong\u003e5.1k, fitted onboard\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePins\u003c\/span\u003e\u003cstrong\u003eDAT, VCC, GND, top to bottom as marked on the board\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCable length\u003c\/span\u003e\u003cstrong\u003eUp to 20 metres with decent quality wire\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003e39.7 x 23.4 x 8.5mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMounting holes\u003c\/span\u003e\u003cstrong\u003eTwo 3mm holes, clearance for M3\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eWeight\u003c\/span\u003e\u003cstrong\u003e4g\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnector\u003c\/span\u003e\u003cstrong\u003ePre-soldered 3-pin 2.54mm header\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSKU\u003c\/span\u003e\u003cstrong\u003eDHT22-AM2302-MODULE\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DHT22-AM2302-Datasheet-v2.pdf?v=1786483515\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the full DHT22 \/ AM2302 technical datasheet (PDF)\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet, wiring, and an Arduino example sketch\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eDHT22 \/ AM2302 module on a breakout PCB\u003c\/strong\u003e\u003cp\u003eHeader already soldered and the pull-up already fitted, so there is nothing to add before you wire it up. Three jumper wires and a board and you are reading.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eESPHome and Home Assistant sensor nodes\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eWeather stations and outdoor logging\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eGreenhouse and grow tent monitoring\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eServer rack and workshop temperature alarms\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eHVAC and ventilation control\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eCuring, drying and filament storage boxes\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGetting started:\u003c\/strong\u003e the header reads \u003cspan class=\"nznpd__code\"\u003eDAT\u003c\/span\u003e, \u003cspan class=\"nznpd__code\"\u003eVCC\u003c\/span\u003e, \u003cspan class=\"nznpd__code\"\u003eGND\u003c\/span\u003e top to bottom on the silkscreen, so check the board rather than wiring by habit. DAT goes to any digital GPIO, VCC to 3.3V or 5V, GND to ground. On Arduino install the Adafruit \u003cspan class=\"nznpd__code\"\u003eDHT sensor library\u003c\/span\u003e and set the type to \u003cspan class=\"nznpd__code\"\u003eDHT22\u003c\/span\u003e, not DHT11. On ESPHome use the \u003cspan class=\"nznpd__code\"\u003edht\u003c\/span\u003e platform with \u003cspan class=\"nznpd__code\"\u003emodel: DHT22\u003c\/span\u003e. Leave at least 2 seconds between reads or the call comes back as \u003cspan class=\"nznpd__code\"\u003enan\u003c\/span\u003e.\u003c\/p\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e ±2% RH holds through the 20 to 90% band and widens to about ±5% RH at the very top and bottom of the range, which is normal for a capacitive sensor. Keep it out of direct sun and away from anything warm, since a heat source next to the sensor skews humidity as well as temperature. Do not use it where condensation forms on the housing, and do not build it into safety or emergency stop equipment.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42737188044896,"sku":"DHT22-AM2302-MODULE","price":5.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DHT-22-Producthero.png?v=1779011528"},{"product_id":"ds18b20-waterproof-temperature-probe","title":"A3-Style DS18B20-Compatible Waterproof Temperature Probe","description":"\u003cdiv class=\"nznpd\"\u003e\n  \u003cp class=\"nznpd__intro\"\u003e\u003cstrong\u003eA sealed, A3-style DS18B20-compatible digital temperature sensor probe for Arduino, ESP32, Raspberry Pi and other 1-Wire projects.\u003c\/strong\u003e NZN testing confirmed the A3-style implementation in the current 1 m and 3 m probes. The 5 m option comes from the same manufacturer as the tested 3 m version, but NZN has not independently characterised its internal implementation.\u003c\/p\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n    \u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n    \u003cdiv class=\"nznpd__specs\"\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eDigital 1-Wire\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e3.0 V to 5.5 V\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eResolution\u003c\/span\u003e\u003cstrong\u003e9 to 12 bit\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCable options\u003c\/span\u003e\u003cstrong\u003e1 m, 3 m or 5 m\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnection\u003c\/span\u003e\u003cstrong\u003eRed VCC, yellow DATA, black GND\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDATA pull-up\u003c\/span\u003e\u003cstrong\u003e4.7 kOhm recommended\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor identity\u003c\/span\u003e\u003cstrong\u003eA3-style DS18B20-compatible\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eNZN sample QC\u003c\/span\u003e\u003cstrong\u003e1 m and 3 m passed extended protocol and stability testing\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIce-point result\u003c\/span\u003e\u003cstrong\u003eAbout -0.12°C (1 m) and -0.27°C (3 m) average\u003c\/strong\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n    \u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n    \u003cdiv class=\"nznpd__ds\"\u003e\n      \u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS18B20-Datasheet-v2.pdf?v=1789260879\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the A3-style DS18B20-compatible probe technical datasheet PDF\"\u003e\n        \u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n        \u003cspan\u003eTechnical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\n      \u003c\/a\u003e\n      \u003ca id=\"quick-start-guide\" class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS18B20-QuickStart.pdf?v=1789260879\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the A3-style DS18B20-compatible probe Quick Start PDF\"\u003e\n        \u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n        \u003cspan\u003eQuick Start guide\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\n      \u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n    \u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n    \u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eA3-style DS18B20-compatible temperature probe\u003c\/strong\u003e\u003cspan\u003eSelected cable length with bare wire ends\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n    \u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n    \u003cdiv class=\"nznpd__uses\"\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eAquariums and water tanks\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eBrewing and fermentation\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eHydroponics and greenhouses\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eHVAC and refrigeration projects\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eESPHome and Home Assistant\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003eArduino, ESP32 and Raspberry Pi\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n    \u003ch3 class=\"nznpd__h\"\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n    \u003col class=\"nznpd__steps\"\u003e\n      \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power\u003c\/strong\u003e\u003cp\u003eRed to 3.3 V or 5 V, and black to GND.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect DATA\u003c\/strong\u003e\u003cp\u003eYellow to a GPIO, with a 4.7 kOhm resistor from DATA to VCC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eUse a fixed conversion wait\u003c\/strong\u003e\u003cp\u003eThe tested 1 m and 3 m samples show an A3-style conversion-polling quirk. At 12 bit, allow the full 750 ms before reading.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n      \u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck each reading\u003c\/strong\u003e\u003cp\u003eReject failed CRC data. An 85 degrees C value immediately after power-up usually means the first conversion was not complete.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n    \u003c\/ol\u003e\n  \u003c\/section\u003e\n\n  \u003cdiv class=\"nznpd__note\"\u003e\n\u003cstrong\u003eNote:\u003c\/strong\u003e A3-style is an independent behavioural family label, not a manufacturer or official part number. NZN confirmed the A3-style fingerprint in tested 1 m and 3 m samples. The 5 m option comes from the same manufacturer as the tested 3 m version, but NZN has not independently characterised its internal implementation. In nominal 0.0°C ice-water slurry tests, the 1 m probe averaged about -0.12°C and the 3 m probe about -0.27°C. Each had only 0.0625°C total spread over about 110 seconds, showing good practical ice-point accuracy and excellent repeatability. This does not verify ±0.5°C accuracy across -10°C to +85°C.\u003c\/div\u003e\n\u003c\/div\u003e\n\r\n","brand":"NZN Electronics","offers":[{"title":"1m","offer_id":42891066409056,"sku":"NZE-DS18B20-1M","price":4.29,"currency_code":"NZD","in_stock":true},{"title":"3m","offer_id":42738660311136,"sku":"NZE-DS18B20-3M","price":7.49,"currency_code":"NZD","in_stock":true},{"title":"5m","offer_id":42891066441824,"sku":"NZE-DS18B20-5M","price":11.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS18B20_1_Metre_Product_Hero.png?v=1782015735"},{"product_id":"bmp280-barometric-pressure-temperature-sensor-module","title":"BMP280 Barometric Pressure Temperature Sensor Module 3.3V","description":"\u003cstyle\u003e\n  .nzn-desc {\n    width: 100%;\n    max-width: 1400px;\n    margin: 0 auto;\n    font-family: inherit;\n    color: #101114;\n    padding: 0 5%;\n    box-sizing: border-box;\n  }\n\n  .nzn-desc,\n  .nzn-desc * {\n    box-sizing: border-box;\n  }\n\n  .nzn-desc .nzn-tabs {\n    width: 100%;\n    max-width: 100%;\n    display: flex;\n    gap: 30px;\n    border-bottom: 1px solid #e7e7e7;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scrollbar-width: none;\n    min-height: 55px;\n    align-items: flex-end;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .nzn-desc .nzn-tabs::-webkit-scrollbar {\n    display: none;\n  }\n\n  .nzn-desc .nzn-tab {\n    flex: 0 0 auto;\n    background: none;\n    border: 0;\n    padding: 16px 0;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 800;\n    white-space: nowrap;\n    border-bottom: 3px solid transparent;\n    color: #101114;\n    cursor: pointer;\n    transition: color .18s ease, border-color .18s ease;\n  }\n\n  .nzn-desc .nzn-tab:hover {\n    color: #ff7a2f;\n  }\n\n  .nzn-desc .nzn-tab.is-active {\n    border-bottom-color: #ff7a2f;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-card {\n    width: 100%;\n    border: 1px solid #e7e7e7;\n    border-top: 0;\n    border-radius: 0 0 18px 18px;\n    padding: 38px 34px;\n    box-shadow: 0 10px 24px rgba(0,0,0,.035);\n    background: #fff;\n    min-height: 620px;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .nzn-desc .nzn-panel {\n    display: none;\n  }\n\n  .nzn-desc .nzn-panel.is-active {\n    display: flex;\n    flex-direction: column;\n    flex: 1;\n    animation: nznTabFade .18s ease both;\n  }\n\n  @keyframes nznTabFade {\n    from {\n      opacity: 0;\n      transform: translateY(6px);\n    }\n    to {\n      opacity: 1;\n      transform: translateY(0);\n    }\n  }\n\n  .nzn-desc .nzn-panel-content {\n    flex: 1;\n  }\n\n  .nzn-desc .nzn-overview {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 46px;\n    align-items: start;\n  }\n\n  .nzn-desc .nzn-overview-copy {\n    padding-top: 6px;\n    text-align: center;\n  }\n\n  .nzn-desc p {\n    font-size: 15px;\n    line-height: 1.65;\n    color: #60646c;\n    margin: 0;\n  }\n\n  .nzn-desc .nzn-checks {\n    list-style: none;\n    padding: 0;\n    margin: 34px auto 0;\n    display: grid;\n    gap: 18px;\n    width: fit-content;\n    max-width: 100%;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-checks li {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-size: 14.5px;\n    color: #101114;\n    line-height: 1.45;\n  }\n\n  .nzn-desc .nzn-checks li::before {\n    content: \"✓\";\n    flex-shrink: 0;\n    color: #ff7a2f;\n    font-weight: 900;\n    font-size: 16px;\n    line-height: 1;\n  }\n\n  .nzn-desc .nzn-section-title {\n    margin: 0 0 30px;\n    padding-top: 10px;\n    text-transform: uppercase;\n    letter-spacing: .12em;\n    font-size: 14px;\n    font-weight: 900;\n    color: #ff7a2f;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-started {\n    background: #eef6ff;\n    border-left: 4px solid #4a9af7;\n    border-radius: 16px;\n    padding: 26px 28px;\n  }\n\n  .nzn-desc .nzn-started h3 {\n    margin: 0 0 20px;\n    text-transform: uppercase;\n    letter-spacing: .12em;\n    font-size: 14px;\n    font-weight: 900;\n    color: #1f4268;\n  }\n\n  .nzn-desc .nzn-step {\n    display: grid;\n    grid-template-columns: 34px 1fr;\n    gap: 14px;\n    margin-bottom: 18px;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-step:last-child {\n    margin-bottom: 0;\n  }\n\n  .nzn-desc .nzn-step span {\n    width: 34px;\n    height: 34px;\n    border-radius: 999px;\n    background: #fff;\n    border: 1px solid #d9e9fb;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-weight: 900;\n  }\n\n  .nzn-desc .nzn-step strong {\n    display: block;\n    font-size: 14px;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-step p {\n    margin-top: 4px;\n    font-size: 13px;\n    color: #40566c;\n  }\n\n  .nzn-desc .nzn-specs {\n    border-top: 1px solid #e7e7e7;\n  }\n\n  .nzn-desc .nzn-specs div {\n    display: grid;\n    grid-template-columns: minmax(180px, .8fr) 1.4fr;\n    gap: 24px;\n    padding: 15px 14px;\n    border-bottom: 1px solid #e7e7e7;\n    font-size: 14px;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-specs div:nth-child(even) {\n    background: #fafafa;\n  }\n\n  .nzn-desc .nzn-specs span {\n    color: #60646c;\n  }\n\n  .nzn-desc .nzn-specs strong {\n    font-weight: 800;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-included-card {\n    display: grid;\n    grid-template-columns: auto 1fr;\n    gap: 18px;\n    align-items: center;\n    border: 1px solid #e7e7e7;\n    border-radius: 16px;\n    background: #fafafa;\n    padding: 24px;\n    margin-bottom: 14px;\n  }\n\n  .nzn-desc .nzn-included-qty {\n    width: 48px;\n    height: 48px;\n    border-radius: 999px;\n    background: #fff5ef;\n    border: 1px solid rgba(255,122,47,.2);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-weight: 900;\n    color: #ff7a2f;\n  }\n\n  .nzn-desc .nzn-included-card strong {\n    display: block;\n    font-size: 16px;\n    margin-bottom: 4px;\n  }\n\n  .nzn-desc .nzn-included-card p {\n    font-size: 14px;\n  }\n\n  .nzn-desc .nzn-uses {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .nzn-desc .nzn-use {\n    border-left: 3px solid #ff7a2f;\n    background: #f7f7f7;\n    padding: 15px 16px;\n    font-size: 14px;\n    line-height: 1.45;\n    text-align: left;\n    border-radius: 0 8px 8px 0;\n  }\n\n  .nzn-desc .nzn-faq {\n    display: grid;\n    gap: 12px;\n  }\n\n  .nzn-desc .nzn-faq-item {\n    border: 1px solid #e7e7e7;\n    border-radius: 12px;\n    padding: 16px 18px;\n    background: #fff;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-faq-item strong {\n    display: block;\n    margin-bottom: 7px;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-faq-item p {\n    font-size: 14px;\n  }\n\n  .nzn-desc .nzn-note {\n    margin-top: 30px;\n    background: #fafafa;\n    border: 1px solid #e7e7e7;\n    border-radius: 12px;\n    padding: 16px 18px;\n    text-align: center;\n    color: #60646c;\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n  @media (max-width: 750px) {\n    .nzn-desc {\n      width: 100%;\n      max-width: 100%;\n      padding: 0 5%;\n      overflow: hidden;\n    }\n\n    .nzn-desc .nzn-tabs {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 0;\n      overflow: visible;\n      min-height: unset;\n      border-bottom: 0;\n      width: 100%;\n      max-width: 100%;\n    }\n\n    .nzn-desc .nzn-tab {\n      width: 100%;\n      min-width: 0;\n      padding: 12px 6px;\n      font-size: 12px;\n      line-height: 1.15;\n      text-align: center;\n      white-space: normal;\n      border-bottom: 2px solid #e7e7e7;\n    }\n\n    .nzn-desc .nzn-tab.is-active {\n      border-bottom-color: #ff7a2f;\n    }\n\n    .nzn-desc .nzn-card {\n      padding: 24px 16px;\n      min-height: unset;\n      width: 100%;\n      max-width: 100%;\n      border-top: 1px solid #e7e7e7;\n      border-radius: 0 0 16px 16px;\n    }\n\n    .nzn-desc .nzn-panel.is-active {\n      display: block;\n    }\n\n    .nzn-desc .nzn-overview {\n      grid-template-columns: 1fr;\n      gap: 26px;\n    }\n\n    .nzn-desc .nzn-overview-copy {\n      padding-top: 0;\n      text-align: center;\n    }\n\n    .nzn-desc p {\n      font-size: 14.5px;\n      text-align: center;\n    }\n\n    .nzn-desc .nzn-checks {\n      margin-top: 24px;\n      gap: 13px;\n      width: fit-content;\n      max-width: 100%;\n    }\n\n    .nzn-desc .nzn-checks li {\n      align-items: flex-start;\n      gap: 10px;\n      font-size: 14px;\n      text-align: left;\n    }\n\n    .nzn-desc .nzn-checks li::before {\n      margin-top: 2px;\n    }\n\n    .nzn-desc .nzn-uses {\n      grid-template-columns: 1fr;\n    }\n\n    .nzn-desc .nzn-specs div {\n      grid-template-columns: 1fr;\n      gap: 4px;\n      padding: 13px 10px;\n    }\n\n    .nzn-desc .nzn-section-title {\n      text-align: left;\n      padding-top: 0;\n      margin-bottom: 22px;\n    }\n\n    .nzn-desc .nzn-started {\n      padding: 20px 16px;\n    }\n\n    .nzn-desc .nzn-included-card {\n      grid-template-columns: 1fr;\n      text-align: left;\n      justify-items: start;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"nzn-desc\"\u003e\n  \u003cdiv class=\"nzn-tabs\"\u003e\n    \u003cbutton class=\"nzn-tab is-active\" type=\"button\" data-tab=\"overview\"\u003eOverview\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"specifications\"\u003eSpecifications\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"getting-started\"\u003eGetting Started\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"included\"\u003eWhat's Included\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"uses\"\u003eCommon Uses\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"faqs\"\u003eFAQs\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nzn-card\"\u003e\n    \u003cdiv class=\"nzn-panel is-active\" data-panel=\"overview\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003cdiv class=\"nzn-overview\"\u003e\n          \u003cdiv class=\"nzn-overview-copy\"\u003e\n            \u003cp\u003eThe BMP280 is a compact barometric pressure and temperature sensor module for Arduino, ESP32, Raspberry Pi, and other microcontroller projects. It is ideal for weather stations, altitude measurement, drones, environmental monitoring, and data logging.\u003c\/p\u003e\n\n            \u003cul class=\"nzn-checks\"\u003e\n              \u003cli\u003eMeasures barometric pressure and temperature\u003c\/li\u003e\n              \u003cli\u003eSupports both I2C and SPI communication\u003c\/li\u003e\n              \u003cli\u003eCompact GY-BM280 breakout module\u003c\/li\u003e\n              \u003cli\u003eGreat for Arduino, ESP32, Raspberry Pi, and STM32 projects\u003c\/li\u003e\n              \u003cli\u003ePerfect for weather, altitude, and environmental sensing\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-started\"\u003e\n            \u003ch3\u003eQuick Start\u003c\/h3\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003e1\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eConnect power\u003c\/strong\u003e\n                \u003cp\u003eConnect VCC to 3.3V and GND to GND.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003e2\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eConnect I2C pins\u003c\/strong\u003e\n                \u003cp\u003eConnect SCL to A5\/SCL and SDA to A4\/SDA on an Arduino Uno.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003e3\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eInstall library\u003c\/strong\u003e\n                \u003cp\u003eUse the Adafruit BMP280 library or another compatible BMP280 Arduino library.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003e4\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eCheck address\u003c\/strong\u003e\n                \u003cp\u003eDefault I2C address is usually 0x76. Pull SDO high to use 0x77.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003ePlease note:\u003c\/strong\u003e This is the BMP280 version. It measures pressure and temperature only, not humidity.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"nzn-panel\" data-panel=\"specifications\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eSpecifications\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-specs\"\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eSensor Chip\u003c\/span\u003e\u003cstrong\u003eBMP280\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eBoard Type\u003c\/span\u003e\u003cstrong\u003eGY-BM280 breakout module\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eOperating Voltage\u003c\/span\u003e\u003cstrong\u003e3.3V\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eI2C \/ SPI\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eI2C Address\u003c\/span\u003e\u003cstrong\u003e0x76 default, 0x77 configurable\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003ePressure Range\u003c\/span\u003e\u003cstrong\u003e300–1100 hPa\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003ePressure Accuracy\u003c\/span\u003e\u003cstrong\u003e±1 hPa absolute\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eRelative Pressure Accuracy\u003c\/span\u003e\u003cstrong\u003e±0.12 hPa\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eTemperature Range\u003c\/span\u003e\u003cstrong\u003e−40°C to +85°C\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eTemperature Accuracy\u003c\/span\u003e\u003cstrong\u003e±1.0°C\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003ePressure Resolution\u003c\/span\u003e\u003cstrong\u003e0.16 Pa\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eTemperature Resolution\u003c\/span\u003e\u003cstrong\u003e0.01°C\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003ePins\u003c\/span\u003e\u003cstrong\u003eVCC, GND, SCL, SDA, CSB, SDO\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003ePlease note:\u003c\/strong\u003e Do not connect this 3.3V module directly to 5V unless your setup uses suitable level shifting.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"nzn-panel\" data-panel=\"getting-started\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003cdiv class=\"nzn-started\"\u003e\n          \u003ch3\u003eGetting Started\u003c\/h3\u003e\n\n          \u003cdiv class=\"nzn-step\"\u003e\n            \u003cspan\u003e1\u003c\/span\u003e\n            \u003cdiv\u003e\n              \u003cstrong\u003eWire VCC and GND\u003c\/strong\u003e\n              \u003cp\u003eConnect VCC to 3.3V and GND to GND.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-step\"\u003e\n            \u003cspan\u003e2\u003c\/span\u003e\n            \u003cdiv\u003e\n              \u003cstrong\u003eWire I2C\u003c\/strong\u003e\n              \u003cp\u003eFor Arduino Uno, connect SCL to A5 and SDA to A4.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-step\"\u003e\n            \u003cspan\u003e3\u003c\/span\u003e\n            \u003cdiv\u003e\n              \u003cstrong\u003eLeave CSB and SDO unconnected\u003c\/strong\u003e\n              \u003cp\u003eThis keeps the module in default I2C mode with address 0x76.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-step\"\u003e\n            \u003cspan\u003e4\u003c\/span\u003e\n            \u003cdiv\u003e\n              \u003cstrong\u003eInstall a BMP280 library\u003c\/strong\u003e\n              \u003cp\u003eInstall the Adafruit BMP280 library through the Arduino Library Manager.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-step\"\u003e\n            \u003cspan\u003e5\u003c\/span\u003e\n            \u003cdiv\u003e\n              \u003cstrong\u003eUpload example sketch\u003c\/strong\u003e\n              \u003cp\u003eOpen a BMP280 example sketch, select your board and port, then upload.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003eWiring:\u003c\/strong\u003e VCC → 3.3V, GND → GND, SCL → A5\/SCL, SDA → A4\/SDA.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"nzn-panel\" data-panel=\"included\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eWhat's Included\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-included-card\"\u003e\n          \u003cdiv class=\"nzn-included-qty\"\u003e1×\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003eBMP280 3.3V sensor module\u003c\/strong\u003e\n            \u003cp\u003eCompact GY-BM280 breakout board for pressure and temperature sensing.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nzn-included-card\"\u003e\n          \u003cdiv class=\"nzn-included-qty\"\u003e1×\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003e6-pin male header strip\u003c\/strong\u003e\n            \u003cp\u003eIncluded unsoldered so you can solder it in your preferred orientation.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003ePlease note:\u003c\/strong\u003e Header pins are included but are not pre-soldered.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"nzn-panel\" data-panel=\"uses\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eCommon Uses\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-uses\"\u003e\n          \u003cdiv class=\"nzn-use\"\u003eWeather stations and local pressure monitoring\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eDIY altimeters and altitude measurement\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eDrone and UAV altitude sensing\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eEnvironmental monitoring and data logging\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eGPS altitude enhancement projects\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eIndoor navigation and floor-level detection\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003ePlease note:\u003c\/strong\u003e This module is best for pressure, temperature, and altitude-based projects.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"nzn-panel\" data-panel=\"faqs\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eCommon Questions\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-faq\"\u003e\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eIs this a BMP280 or BME280?\u003c\/strong\u003e\n            \u003cp\u003eThis is a BMP280. It measures pressure and temperature only. It does not measure humidity.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eCan I use this with Arduino?\u003c\/strong\u003e\n            \u003cp\u003eYes, it works with Arduino boards using I2C or SPI. For Arduino Uno I2C, use SDA on A4 and SCL on A5.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eCan I use this with ESP32 or Raspberry Pi?\u003c\/strong\u003e\n            \u003cp\u003eYes, it is compatible with ESP32, Raspberry Pi, STM32, and other 3.3V microcontroller platforms.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eCan I connect it to 5V?\u003c\/strong\u003e\n            \u003cp\u003eThis is a 3.3V module. Do not connect directly to 5V unless using proper voltage level shifting.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n        \u003cstrong\u003ePlease note:\u003c\/strong\u003e If your code cannot find the sensor, check the I2C address. It may be 0x76 or 0x77.\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  document.addEventListener('click', function(event) {\n    const tab = event.target.closest('.nzn-desc .nzn-tab');\n    if (!tab) return;\n\n    const wrapper = tab.closest('.nzn-desc');\n    if (!wrapper) return;\n\n    const target = tab.getAttribute('data-tab');\n\n    wrapper.querySelectorAll('.nzn-tab').forEach(function(item) {\n      item.classList.remove('is-active');\n    });\n\n    wrapper.querySelectorAll('.nzn-panel').forEach(function(panel) {\n      panel.classList.remove('is-active');\n    });\n\n    tab.classList.add('is-active');\n\n    const panel = wrapper.querySelector('[data-panel=\"' + target + '\"]');\n    if (panel) panel.classList.add('is-active');\n  });\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42757854003296,"sku":"BMP280-3V3","price":3.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/BMP280-3.3V-Producthero.png?v=1779047527"},{"product_id":"41f-hall-effect-sensor-to-92-arduino-magnetic-switch","title":"41F Bipolar Hall Effect Latch Sensor - TO-92, 3.5V to 24V","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;width:100%;max-width:1120px;margin:0 auto;font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd__intro{font-size:15px;line-height:1.7;color:var(--mut);margin:0 0 28px}\n.nznpd__highlights{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-template-columns:1fr 1fr;gap:0}\n.nznpd__highlights li{display:flex;align-items:baseline;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--ink)}\n.nznpd__highlights li::before{content:\"\\25B8\";color:var(--o);flex-shrink:0;font-size:11px}\n.nznpd__block{margin:0 0 36px}\n.nznpd__h{font-size:16px;font-weight:700;color:var(--ink);margin:0 0 24px;padding-bottom:10px;position:relative;border:none;background:none}\n.nznpd__h::before{content:\"\";position:absolute;bottom:0;left:0;width:20px;height:3px;background:var(--o);border-radius:2px}\n.nznpd__specs{width:100%;border-collapse:collapse;font-size:14px;border:1px solid var(--line);border-radius:8px;overflow:hidden}\n.nznpd__spec:nth-child(even){background:var(--soft)}\n.nznpd__spec td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}\n.nznpd__spec:last-child td{border-bottom:none}\n.nznpd__spec td:first-child{color:var(--mut);width:210px;font-weight:500}\n.nznpd__spec td:last-child{font-weight:600;color:var(--ink)}\n.nznpd__qs{background:#FFF7EF;border-radius:8px;padding:20px 24px}\n.nznpd__steps{list-style:none;padding:0;margin:0;display:grid;gap:10px;counter-reset:step}\n.nznpd__steps li{font-size:14px;line-height:1.6;color:var(--ink);padding-left:38px;position:relative;counter-increment:step;min-height:26px}\n.nznpd__steps li::before{content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;background:var(--o);color:#fff;font-size:12px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:26px;flex-shrink:0}\n.nznpd__steps code{font-family:monospace;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 5px}\n.nznpd__uses{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}\n.nznpd__use{border-left:3px solid var(--o);background:var(--soft);padding:14px 16px;border-radius:0 6px 6px 0}\n.nznpd__use strong{display:block;font-size:14px;font-weight:700;color:var(--ink);margin:0 0 4px}\n.nznpd__use p{font-size:13px;line-height:1.5;color:var(--mut);margin:0}\n.nznpd__note{background:var(--soft);border:1px solid var(--line);border-left:3px solid var(--o);border-radius:0 6px 6px 0;padding:14px 18px;font-size:13.5px;line-height:1.65;color:var(--mut);margin:32px 0 0}\n.nznpd__note strong{color:var(--ink)}\n@media(max-width:999px){.nznpd{padding:0 16px}}\n@media(max-width:749px){.nznpd{padding:0 14px}.nznpd__highlights{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr 1fr}.nznpd__spec td:first-child{width:auto}.nznpd__h{margin-bottom:16px}}\n@media(max-width:480px){.nznpd__uses{grid-template-columns:1fr}}\n.nzndemo{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;--s:#2F6FB0;--sbg:#EAF3FC;--n:#C4452C;--nbg:#FDEEEB;--ok:#0B6B57;--okbg:#E4F5EF;background:#fff;border:2px solid var(--line);border-radius:16px;padding:20px;font-family:inherit;color:var(--ink);line-height:1.5}\n.nzndemo,.nzndemo *{box-sizing:border-box}\n.nzndemo__layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:stretch}\n.nzndemo__stage{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;justify-content:center;align-items:center;min-height:236px}\n.nzndemo__stage svg{width:100%;max-width:560px;height:auto;display:block;overflow:visible}\n.nzndemo__side{display:flex;flex-direction:column;gap:12px;min-width:0}\n.nzndemo__label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin:0 0 7px}\n.nzndemo__btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.nzndemo__btn{min-height:46px;padding:8px 6px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25;text-align:center;transition:background .18s ease,border-color .18s ease,color .18s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}\n.nzndemo__btn:hover{border-color:#d7dde4}\n.nzndemo__btn:focus-visible{outline:3px solid var(--o);outline-offset:2px}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"south\"]{background:var(--sbg);border-color:var(--s);color:#17456f}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"north\"]{background:var(--nbg);border-color:var(--n);color:#7d2415}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"none\"]{background:#eef1f4;border-color:#9aa5b1;color:var(--ink)}\n.nzndemo__btn--wide{grid-column:span 2}\n.nzndemo__status{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:7px}\n.nzndemo__row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}\n.nzndemo__k{color:var(--mut)}\n.nzndemo__v{font-weight:700;font-variant-numeric:tabular-nums}\n.nzndemo__badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--line);color:var(--mut);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}\n.nzndemo__badge::before{content:\"\";width:7px;height:7px;border-radius:999px;background:currentColor;flex:0 0 auto}\n.nzndemo__badge.is-on{background:var(--okbg);color:var(--ok)}\n.nzndemo__badge.is-off{background:var(--nbg);color:#7d2415}\n.nzndemo__info{background:#FFF9F5;border:1px solid #FCE0C6;border-radius:10px;padding:11px 13px}\n.nzndemo__info-t{font-size:12px;font-weight:800;color:var(--od);margin-bottom:3px}\n.nzndemo__info-b{font-size:12.5px;color:var(--mut);line-height:1.55}\n.nzndemo__notes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}\n.nzndemo__note{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}\n.nzndemo__note-t{font-size:11px;font-weight:800;margin-bottom:3px}\n.nzndemo__note-b{font-size:11.5px;color:var(--mut);line-height:1.5}\n.nzndemo__cap{font-size:11.5px;color:var(--mut);margin:12px 0 0}\n.nzndemo .mag{transition:transform .28s cubic-bezier(.34,1.4,.64,1)}\n.nzndemo .flux{transition:opacity .2s ease}\n.nzndemo .led{transition:fill .18s ease,stroke .18s ease}\n@media (prefers-reduced-motion:reduce){.nzndemo *,.nzndemo *::before{transition:none!important;animation:none!important}}\n@media(max-width:749px){.nzndemo{padding:16px}.nzndemo__stage{min-height:0;padding:8px}.nzndemo__layout{grid-template-columns:minmax(0,1fr)}.nzndemo__notes{grid-template-columns:1fr}}\n\u003c\/style\u003e\n\n\u003cdiv class=\"nznpd\"\u003e\n\n  \u003cp class=\"nznpd__intro\"\u003eThe 41F is a bipolar hall effect \u003cstrong\u003elatch\u003c\/strong\u003e, and that word is the whole story. A south pole on the marked face switches the output on, and it stays on after the magnet leaves. Only a north pole switches it back off. That memory is exactly what you want for anything spinning past alternating poles, and exactly what confuses people who expected a plain switch. Runs from 3.5V to 24V.\u003c\/p\u003e\n\n  \u003cul class=\"nznpd__highlights\"\u003e\n    \u003cli\u003eBipolar latch: south sets it, north resets it\u003c\/li\u003e\n    \u003cli\u003eHolds its state with no magnet present\u003c\/li\u003e\n    \u003cli\u003eClean edges, ideal for RPM counting at speed\u003c\/li\u003e\n    \u003cli\u003eWide 3.5V to 24V supply range\u003c\/li\u003e\n    \u003cli\u003eOpen collector output, needs a pull-up\u003c\/li\u003e\n    \u003cli\u003eReads LOW once latched on\u003c\/li\u003e\n    \u003cli\u003ePower-up state is undefined by design\u003c\/li\u003e\n    \u003cli\u003eWorks with Arduino, ESP32 and Raspberry Pi\u003c\/li\u003e\n    \u003cli\u003eTO-92 package, breadboard friendly\u003c\/li\u003e\n    \u003cli\u003eMarked “41F 551” on the flat face\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eHow it works\u003c\/h2\u003e\n    \u003cdiv class=\"nzndemo\" data-mode=\"latch\" data-part=\"41F\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eSpecifications\u003c\/h2\u003e\n    \u003ctable class=\"nznpd__specs\"\u003e\n      \u003ctbody\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eModel\u003c\/td\u003e\n\u003ctd\u003e41F-551, marked “41F 551”\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSensor type\u003c\/td\u003e\n\u003ctd\u003eBipolar hall effect latch\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSupply voltage\u003c\/td\u003e\n\u003ctd\u003e3.5V to 24V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSupply current\u003c\/td\u003e\n\u003ctd\u003eTypically 4mA\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOutput type\u003c\/td\u003e\n\u003ctd\u003eDigital, open collector (active low)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOutput state\u003c\/td\u003e\n\u003ctd\u003eGoes LOW on a south pole and stays LOW until a north pole\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eMagnetic polarity\u003c\/td\u003e\n\u003ctd\u003eSouth sets the output, north resets it. Removing the magnet does nothing.\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePower-up state\u003c\/td\u003e\n\u003ctd\u003eUndefined until it sees a pole\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePull-up resistor\u003c\/td\u003e\n\u003ctd\u003eRequired, or use the microcontroller's internal pull-up\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePackage\u003c\/td\u003e\n\u003ctd\u003eTO-92, 3-pin, 1.27mm lead pitch\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePinout\u003c\/td\u003e\n\u003ctd\u003eMarked face toward you, legs down: 1 VCC \/ 2 GND \/ 3 OUT\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSensing face\u003c\/td\u003e\n\u003ctd\u003eFlat (marked) face of the TO-92 body\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOperating temp\u003c\/td\u003e\n\u003ctd\u003e-40°C to +85°C\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eBody size\u003c\/td\u003e\n\u003ctd\u003eApprox. 4.1mm wide, leads 14mm+\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSKU\u003c\/td\u003e\n\u003ctd\u003e41F-HALL-TO92\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eWiring \u0026amp; getting started\u003c\/h2\u003e\n    \u003cdiv class=\"nznpd__qs\"\u003e\n      \u003col class=\"nznpd__steps\"\u003e\n        \u003cli\u003eHold the sensor with the \u003cstrong\u003eflat marked face toward you\u003c\/strong\u003e, legs pointing down. Pins 1, 2, 3 run left to right.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 1 -- VCC:\u003c\/strong\u003e 3.5V to 24V. On an ESP32 use the 5V rail, since 3.3V is below the minimum.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 2 -- GND:\u003c\/strong\u003e common ground of your circuit.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 3 -- OUT:\u003c\/strong\u003e to a digital input, with a pull-up. \u003ccode\u003epinMode(pin, INPUT_PULLUP)\u003c\/code\u003e saves fitting a resistor.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eEstablish a known state at startup.\u003c\/strong\u003e A latch powers up undefined, so sweep a known pole past it before you trust the reading.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSweep both poles to test.\u003c\/strong\u003e South pulls it LOW and it holds. North releases it back HIGH.\u003c\/li\u003e\n      \u003c\/ol\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eGreat for\u003c\/h2\u003e\n    \u003cdiv class=\"nznpd__uses\"\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eRPM with ring magnets\u003c\/strong\u003e\u003cp\u003eAlternating north and south segments give one clean transition per pole, with no jitter near a release threshold.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eBrushless motor commutation\u003c\/strong\u003e\u003cp\u003eA BLDC rotor presents alternating poles, which is precisely what a bipolar latch is built to read.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eMagnetic toggle switches\u003c\/strong\u003e\u003cp\u003eOne magnet swipe latches on, the other latches off, with no power needed to hold state.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003ePosition and index marks\u003c\/strong\u003e\u003cp\u003eRotary position sensing where you need an unambiguous edge rather than a proximity window.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eHigh speed counting\u003c\/strong\u003e\u003cp\u003eAttach to a hardware interrupt pin and count edges without debouncing.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eRobotics and automation\u003c\/strong\u003e\u003cp\u003eContactless state detection that survives dust, damp and vibration.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e if the output latches on and never releases, nothing is broken. That is what a latch does, and it is waiting for the opposite pole. If you want an output that releases as soon as the magnet moves away, use a switch such as the A3144 instead. The sensing element sits in the flat marked face, so point that side at your magnet. Shipped from our Te Awamutu stock.\u003c\/p\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nvar NS=\"http:\/\/www.w3.org\/2000\/svg\";\nfunction el(t,a,p){var n=document.createElementNS(NS,t);for(var k in a)n.setAttribute(k,a[k]);if(p)p.appendChild(n);return n;}\nfunction stage(part){\n var s=document.createElementNS(NS,\"svg\");s.setAttribute(\"viewBox\",\"0 0 400 200\");s.setAttribute(\"role\",\"img\");\n s.setAttribute(\"aria-label\",\"Diagram of a magnet next to an \"+part+\" hall sensor and its output indicator\");\n var g=el(\"g\",{class:\"mag\",transform:\"translate(6,58)\"},s);\n var rF=el(\"rect\",{x:0,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var rN=el(\"rect\",{x:52,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var tF=el(\"text\",{x:26,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var tN=el(\"text\",{x:78,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var cp=el(\"text\",{x:52,y:88,\"text-anchor\":\"middle\",\"font-size\":12,fill:\"#5b6573\"},g);cp.textContent=\"magnet\";\n var P={south:{f:\"#EAF3FC\",s:\"#2F6FB0\",t:\"#17456f\",l:\"S\"},north:{f:\"#FDEEEB\",s:\"#C4452C\",t:\"#7d2415\",l:\"N\"}};\n function setFacing(x){var n=P[x===\"north\"?\"north\":\"south\"],f=P[x===\"north\"?\"south\":\"north\"];\n  rN.setAttribute(\"fill\",n.f);rN.setAttribute(\"stroke\",n.s);tN.setAttribute(\"fill\",n.t);tN.textContent=n.l;\n  rF.setAttribute(\"fill\",f.f);rF.setAttribute(\"stroke\",f.s);tF.setAttribute(\"fill\",f.t);tF.textContent=f.l;}\n setFacing(\"south\");\n var fl=el(\"g\",{class:\"flux\",opacity:0},s);\n [78,96,114].forEach(function(y){el(\"line\",{x1:132,y1:y,x2:186,y2:96,stroke:\"#94a3b8\",\"stroke-width\":1,\"stroke-dasharray\":\"4,3\"},fl);});\n el(\"polygon\",{points:\"186,91 196,96 186,101\",fill:\"#94a3b8\"},fl);\n var sg=el(\"g\",{transform:\"translate(196,50)\"},s);\n el(\"rect\",{x:0,y:0,width:96,height:92,rx:6,fill:\"#fff\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},sg);\n el(\"rect\",{x:0,y:0,width:6,height:92,rx:2,fill:\"#EEF2F6\"},sg);\n var a=el(\"text\",{x:51,y:34,\"text-anchor\":\"middle\",\"font-size\":13.5,\"font-weight\":700,fill:\"#0F172A\"},sg);a.textContent=part;\n var b=el(\"text\",{x:51,y:52,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},sg);b.textContent=\"marked face\";\n [22,49,76].forEach(function(x){el(\"line\",{x1:x,y1:92,x2:x,y2:118,stroke:\"#0F172A\",\"stroke-width\":2},sg);});\n [\"VCC\",\"GND\",\"OUT\"].forEach(function(l,i){var t=el(\"text\",{x:[22,49,76][i],y:132,\"text-anchor\":\"middle\",\"font-size\":11,fill:\"#5b6573\"},sg);t.textContent=l;});\n el(\"line\",{x1:292,y1:96,x2:326,y2:96,stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var led=el(\"circle\",{class:\"led\",cx:344,cy:96,r:15,fill:\"#F7F8FA\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var lt=el(\"text\",{x:344,y:78,\"text-anchor\":\"middle\",\"font-size\":12,\"font-weight\":700,fill:\"#5b6573\"},s);\n var lc=el(\"text\",{x:344,y:130,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},s);lc.textContent=\"output\";\n return {svg:s,mag:g,flux:fl,led:led,ledTxt:lt,setFacing:setFacing};\n}\nfunction build(root){\n var part=root.getAttribute(\"data-part\")||\"sensor\";\n var st=stage(part);\n var lay=document.createElement(\"div\");lay.className=\"nzndemo__layout\";\n var stg=document.createElement(\"div\");stg.className=\"nzndemo__stage\";stg.appendChild(st.svg);\n var side=document.createElement(\"div\");side.className=\"nzndemo__side\";\n lay.appendChild(stg);lay.appendChild(side);root.appendChild(lay);\n var cw=document.createElement(\"div\");var lab=document.createElement(\"p\");lab.className=\"nzndemo__label\";cw.appendChild(lab);side.appendChild(cw);\n var live=document.createElement(\"div\");live.setAttribute(\"role\",\"status\");live.setAttribute(\"aria-live\",\"polite\");\n live.style.display=\"flex\";live.style.flexDirection=\"column\";live.style.gap=\"12px\";side.appendChild(live);\n var status=document.createElement(\"div\");status.className=\"nzndemo__status\";live.appendChild(status);\n var info=document.createElement(\"div\");info.className=\"nzndemo__info\";\n var it=document.createElement(\"div\");it.className=\"nzndemo__info-t\";\n var ib=document.createElement(\"div\");ib.className=\"nzndemo__info-b\";\n info.appendChild(it);info.appendChild(ib);live.appendChild(info);\n function row(k,v){var r=document.createElement(\"div\");r.className=\"nzndemo__row\";var a=document.createElement(\"span\");a.className=\"nzndemo__k\";a.textContent=k;r.appendChild(a);r.appendChild(v);status.appendChild(r);}\n function sp(c){var s=document.createElement(\"span\");s.className=c;return s;}\n \/\/ Reserve the height of the tallest possible explainer so changing message\n \/\/ length never reflows the panel and shifts the page content below it.\n var PAIRS=[];\n function reserve(){\n  if(!PAIRS.length)return;\n  var pt=it.textContent,pb=ib.textContent,max=0;\n  info.style.minHeight=\"\";\n  PAIRS.forEach(function(p){it.textContent=p[0];ib.textContent=p[1];\n   var h=info.getBoundingClientRect().height;if(h\u003emax)max=h;});\n  it.textContent=pt;ib.textContent=pb;\n  info.style.minHeight=Math.ceil(max)+\"px\";\n }\n var rz;window.addEventListener(\"resize\",function(){clearTimeout(rz);rz=setTimeout(reserve,150);});\n lab.textContent=\"Present a magnet pole\";\n var bs=document.createElement(\"div\");bs.className=\"nzndemo__btns\";\n var defs=[{p:\"south\",t:\"South pole\u003cbr\u003eto marked face\"},{p:\"north\",t:\"North pole\u003cbr\u003eto marked face\"},{p:\"none\",t:\"Remove the magnet\",w:1}];\n var made={};\n defs.forEach(function(d){var b=document.createElement(\"button\");b.type=\"button\";\n  b.className=\"nzndemo__btn\"+(d.w?\" nzndemo__btn--wide\":\"\");b.setAttribute(\"data-pole\",d.p);\n  b.setAttribute(\"aria-pressed\",\"false\");b.innerHTML=d.t;bs.appendChild(b);made[d.p]=b;\n  b.addEventListener(\"click\",function(){apply(d.p);});});\n cw.appendChild(bs);\n var pinB=sp(\"nzndemo__v\"),outB=sp(\"nzndemo__badge\"),magB=sp(\"nzndemo__v\");\n row(\"Pin 3 (OUT)\",pinB);row(\"Output\",outB);row(\"Magnet\",magB);\n var M_PU=\"A latch has no default state. Until it sees a pole you cannot know which way the output sits, so sweep a known pole past it at startup.\";\n var M_ON=\"A south pole sets the output LOW and it will stay there, even after you take the magnet away.\";\n var M_OFF=\"A north pole is what resets the output back HIGH. Only the opposite pole can clear a latch.\";\n var M_HOLD=\"This is the whole point of a latch: it holds its last state with no magnet present. A plain switch would have released.\";\n PAIRS=[[\"Power-up state\",M_PU],[\"Latched on\",M_ON],[\"Latched off\",M_OFF],[\"Still on, magnet gone\",M_HOLD]];\n var state=null,pole=\"none\";\n function apply(p){pole=p;for(var k in made){made[k].setAttribute(\"aria-pressed\",String(k===p));}\n  if(p===\"south\")state=true;else if(p===\"north\")state=false;render();}\n function render(){\n  var on=state===true;\n  st.flux.setAttribute(\"opacity\",pole===\"none\"?\"0\":\"1\");\n  if(pole!==\"none\")st.setFacing(pole);\n  st.mag.setAttribute(\"transform\",\"translate(\"+(pole===\"none\"?6:60)+\",58)\");\n  magB.textContent=pole===\"none\"?\"none\":(pole===\"south\"?\"South pole\":\"North pole\");\n  if(state===null){pinB.textContent=\"undefined\";outB.textContent=\"Unknown\";outB.className=\"nzndemo__badge\";\n   st.led.setAttribute(\"fill\",\"#F7F8FA\");st.led.setAttribute(\"stroke\",\"#CBD5E0\");st.ledTxt.textContent=\"?\";\n   it.textContent=\"Power-up state\";ib.textContent=M_PU;return;}\n  pinB.textContent=on?\"LOW (0V)\":\"HIGH (pulled up)\";\n  outB.textContent=on?\"On\":\"Off\";outB.className=\"nzndemo__badge \"+(on?\"is-on\":\"is-off\");\n  st.led.setAttribute(\"fill\",on?\"#E4F5EF\":\"#F7F8FA\");st.led.setAttribute(\"stroke\",on?\"#0B6B57\":\"#CBD5E0\");\n  st.ledTxt.textContent=on?\"ON\":\"OFF\";\n  if(pole===\"south\"){it.textContent=\"Latched on\";ib.textContent=M_ON;}\n  else if(pole===\"north\"){it.textContent=\"Latched off\";ib.textContent=M_OFF;}\n  else{it.textContent=on?\"Still on, magnet gone\":\"Still off, magnet gone\";ib.textContent=M_HOLD;}\n }\n render();\n var nz=document.createElement(\"div\");nz.className=\"nzndemo__notes\";\n var N=[[\"South sets\",\"A south pole on the marked face pulls the output LOW and it stays LOW.\"],[\"North resets\",\"Only a north pole returns the output HIGH. Removing the magnet does nothing.\"],[\"Open collector\",\"The output can only pull down, so it needs a pull-up. Use INPUT_PULLUP.\"]];\n N.forEach(function(n){var d=document.createElement(\"div\");d.className=\"nzndemo__note\";\n  var a=document.createElement(\"div\");a.className=\"nzndemo__note-t\";a.textContent=n[0];\n  var b=document.createElement(\"div\");b.className=\"nzndemo__note-b\";b.textContent=n[1];\n  d.appendChild(a);d.appendChild(b);nz.appendChild(d);});\n root.appendChild(nz);\n root.appendChild(document.createElement(\"br\"));\n var cap=document.createElement(\"p\");cap.className=\"nzndemo__cap\";\n cap.textContent=\"Interactive simulation for illustration. Real thresholds vary with magnet grade, distance and temperature.\";\n root.appendChild(cap);\n reserve();\n if(document.fonts\u0026\u0026document.fonts.ready)document.fonts.ready.then(reserve);\n}\nfunction init(){var l=document.querySelectorAll(\".nzndemo\");for(var i=0;i\u003cl.length;i++){if(!l[i].getAttribute(\"data-built\")){l[i].setAttribute(\"data-built\",\"1\");build(l[i]);}}}\nif(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",init);else init();\n})();\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42756166221920,"sku":"41F-HALL-TO92","price":0.59,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/41F-551-Total-Single.png?v=1778849423"},{"product_id":"a3144-hall-effect-sensor-to-92-arduino-magnetic-switch","title":"A3144 Hall Effect Switch Sensor - TO-92, 4.5V to 24V","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;width:100%;max-width:1120px;margin:0 auto;font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd__intro{font-size:15px;line-height:1.7;color:var(--mut);margin:0 0 28px}\n.nznpd__highlights{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-template-columns:1fr 1fr;gap:0}\n.nznpd__highlights li{display:flex;align-items:baseline;gap:9px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--ink)}\n.nznpd__highlights li::before{content:\"\\25B8\";color:var(--o);flex-shrink:0;font-size:11px}\n.nznpd__block{margin:0 0 36px}\n.nznpd__h{font-size:16px;font-weight:700;color:var(--ink);margin:0 0 24px;padding-bottom:10px;position:relative;border:none;background:none}\n.nznpd__h::before{content:\"\";position:absolute;bottom:0;left:0;width:20px;height:3px;background:var(--o);border-radius:2px}\n.nznpd__specs{width:100%;border-collapse:collapse;font-size:14px;border:1px solid var(--line);border-radius:8px;overflow:hidden}\n.nznpd__spec:nth-child(even){background:var(--soft)}\n.nznpd__spec td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}\n.nznpd__spec:last-child td{border-bottom:none}\n.nznpd__spec td:first-child{color:var(--mut);width:210px;font-weight:500}\n.nznpd__spec td:last-child{font-weight:600;color:var(--ink)}\n.nznpd__qs{background:#FFF7EF;border-radius:8px;padding:20px 24px}\n.nznpd__steps{list-style:none;padding:0;margin:0;display:grid;gap:10px;counter-reset:step}\n.nznpd__steps li{font-size:14px;line-height:1.6;color:var(--ink);padding-left:38px;position:relative;counter-increment:step;min-height:26px}\n.nznpd__steps li::before{content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;background:var(--o);color:#fff;font-size:12px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:26px;flex-shrink:0}\n.nznpd__steps code{font-family:monospace;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 5px}\n.nznpd__uses{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}\n.nznpd__use{border-left:3px solid var(--o);background:var(--soft);padding:14px 16px;border-radius:0 6px 6px 0}\n.nznpd__use strong{display:block;font-size:14px;font-weight:700;color:var(--ink);margin:0 0 4px}\n.nznpd__use p{font-size:13px;line-height:1.5;color:var(--mut);margin:0}\n.nznpd__note{background:var(--soft);border:1px solid var(--line);border-left:3px solid var(--o);border-radius:0 6px 6px 0;padding:14px 18px;font-size:13.5px;line-height:1.65;color:var(--mut);margin:32px 0 0}\n.nznpd__note strong{color:var(--ink)}\n@media(max-width:999px){.nznpd{padding:0 16px}}\n@media(max-width:749px){.nznpd{padding:0 14px}.nznpd__highlights{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr 1fr}.nznpd__spec td:first-child{width:auto}.nznpd__h{margin-bottom:16px}}\n@media(max-width:480px){.nznpd__uses{grid-template-columns:1fr}}\n.nzndemo{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;--s:#2F6FB0;--sbg:#EAF3FC;--n:#C4452C;--nbg:#FDEEEB;--ok:#0B6B57;--okbg:#E4F5EF;background:#fff;border:2px solid var(--line);border-radius:16px;padding:20px;font-family:inherit;color:var(--ink);line-height:1.5}\n.nzndemo,.nzndemo *{box-sizing:border-box}\n.nzndemo__layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:stretch}\n.nzndemo__stage{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;justify-content:center;align-items:center;min-height:236px}\n.nzndemo__stage svg{width:100%;max-width:560px;height:auto;display:block;overflow:visible}\n.nzndemo__side{display:flex;flex-direction:column;gap:12px;min-width:0}\n.nzndemo__label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin:0 0 7px}\n.nzndemo__btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.nzndemo__btn{min-height:46px;padding:8px 6px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25;text-align:center;transition:background .18s ease,border-color .18s ease,color .18s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}\n.nzndemo__btn:hover{border-color:#d7dde4}\n.nzndemo__btn:focus-visible{outline:3px solid var(--o);outline-offset:2px}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"south\"]{background:var(--sbg);border-color:var(--s);color:#17456f}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"north\"]{background:var(--nbg);border-color:var(--n);color:#7d2415}\n.nzndemo__btn[aria-pressed=\"true\"][data-pole=\"none\"]{background:#eef1f4;border-color:#9aa5b1;color:var(--ink)}\n.nzndemo__btn--wide{grid-column:span 2}\n.nzndemo__status{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:7px}\n.nzndemo__row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}\n.nzndemo__k{color:var(--mut)}\n.nzndemo__v{font-weight:700;font-variant-numeric:tabular-nums}\n.nzndemo__badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--line);color:var(--mut);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}\n.nzndemo__badge::before{content:\"\";width:7px;height:7px;border-radius:999px;background:currentColor;flex:0 0 auto}\n.nzndemo__badge.is-on{background:var(--okbg);color:var(--ok)}\n.nzndemo__badge.is-off{background:var(--nbg);color:#7d2415}\n.nzndemo__info{background:#FFF9F5;border:1px solid #FCE0C6;border-radius:10px;padding:11px 13px}\n.nzndemo__info-t{font-size:12px;font-weight:800;color:var(--od);margin-bottom:3px}\n.nzndemo__info-b{font-size:12.5px;color:var(--mut);line-height:1.55}\n.nzndemo__notes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}\n.nzndemo__note{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}\n.nzndemo__note-t{font-size:11px;font-weight:800;margin-bottom:3px}\n.nzndemo__note-b{font-size:11.5px;color:var(--mut);line-height:1.5}\n.nzndemo__cap{font-size:11.5px;color:var(--mut);margin:12px 0 0}\n.nzndemo .mag{transition:transform .28s cubic-bezier(.34,1.4,.64,1)}\n.nzndemo .flux{transition:opacity .2s ease}\n.nzndemo .led{transition:fill .18s ease,stroke .18s ease}\n@media (prefers-reduced-motion:reduce){.nzndemo *,.nzndemo *::before{transition:none!important;animation:none!important}}\n@media(max-width:749px){.nzndemo{padding:16px}.nzndemo__stage{min-height:0;padding:8px}.nzndemo__layout{grid-template-columns:minmax(0,1fr)}.nzndemo__notes{grid-template-columns:1fr}}\n\u003c\/style\u003e\n\n\u003cdiv class=\"nznpd\"\u003e\n\n  \u003cp class=\"nznpd__intro\"\u003eThe A3144 is the workhorse hall effect switch: bring a south pole near its marked face and the output pulls LOW, take the magnet away and it releases again. It is unipolar, so a north pole does nothing at all, which is the single most common reason one appears dead on the bench. Runs on anything from 4.5V to 24V, so it drops straight into 5V logic, 12V and 24V systems alike.\u003c\/p\u003e\n\n  \u003cul class=\"nznpd__highlights\"\u003e\n    \u003cli\u003eDigital on\/off output, not a field measurement\u003c\/li\u003e\n    \u003cli\u003eUnipolar: only a south pole triggers it\u003c\/li\u003e\n    \u003cli\u003eReleases as soon as the magnet leaves\u003c\/li\u003e\n    \u003cli\u003eWide 4.5V to 24V supply range\u003c\/li\u003e\n    \u003cli\u003eOpen collector output, needs a pull-up\u003c\/li\u003e\n    \u003cli\u003eReads LOW when a magnet is detected\u003c\/li\u003e\n    \u003cli\u003eFast switching, no contact bounce\u003c\/li\u003e\n    \u003cli\u003eWorks with Arduino, ESP32 and Raspberry Pi\u003c\/li\u003e\n    \u003cli\u003eTO-92 package, breadboard friendly\u003c\/li\u003e\n    \u003cli\u003eMarked “3144 609” on the flat face\u003c\/li\u003e\n  \u003c\/ul\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eHow it works\u003c\/h2\u003e\n    \u003cdiv class=\"nzndemo\" data-mode=\"switch\" data-part=\"A3144\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eSpecifications\u003c\/h2\u003e\n    \u003ctable class=\"nznpd__specs\"\u003e\n      \u003ctbody\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eModel\u003c\/td\u003e\n\u003ctd\u003eA3144, marked “3144 609”\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSensor type\u003c\/td\u003e\n\u003ctd\u003eUnipolar hall effect switch\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSupply voltage\u003c\/td\u003e\n\u003ctd\u003e4.5V to 24V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOutput type\u003c\/td\u003e\n\u003ctd\u003eDigital, open collector (active low)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOutput state\u003c\/td\u003e\n\u003ctd\u003eLOW while a south pole is present, HIGH otherwise\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eMagnetic polarity\u003c\/td\u003e\n\u003ctd\u003eSouth pole on the marked face triggers it. North does nothing.\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePull-up resistor\u003c\/td\u003e\n\u003ctd\u003eRequired, or use the microcontroller's internal pull-up\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eResponse\u003c\/td\u003e\n\u003ctd\u003eFast switching, no mechanical bounce to debounce\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePackage\u003c\/td\u003e\n\u003ctd\u003eTO-92, 3-pin, 1.27mm lead pitch\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003ePinout\u003c\/td\u003e\n\u003ctd\u003eMarked face toward you, legs down: 1 VCC \/ 2 GND \/ 3 OUT\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSensing face\u003c\/td\u003e\n\u003ctd\u003eFlat (marked) face of the TO-92 body\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eOperating temp\u003c\/td\u003e\n\u003ctd\u003e-40°C to +85°C\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eBody size\u003c\/td\u003e\n\u003ctd\u003eApprox. 4.1mm wide, 4.0mm tall, leads 13.5mm+\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr class=\"nznpd__spec\"\u003e\n\u003ctd\u003eSKU\u003c\/td\u003e\n\u003ctd\u003eA3144-HALL-TO92\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eWiring \u0026amp; getting started\u003c\/h2\u003e\n    \u003cdiv class=\"nznpd__qs\"\u003e\n      \u003col class=\"nznpd__steps\"\u003e\n        \u003cli\u003eHold the sensor with the \u003cstrong\u003eflat marked face toward you\u003c\/strong\u003e, legs pointing down. Pins 1, 2, 3 run left to right.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 1 -- VCC:\u003c\/strong\u003e anywhere from 4.5V to 24V. On an ESP32 use the 5V rail, not 3.3V.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 2 -- GND:\u003c\/strong\u003e common ground of your circuit.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003ePin 3 -- OUT:\u003c\/strong\u003e to a digital input, with a pull-up. \u003ccode\u003epinMode(pin, INPUT_PULLUP)\u003c\/code\u003e saves fitting a resistor.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eRead it inverted:\u003c\/strong\u003e \u003ccode\u003edigitalRead(pin) == LOW\u003c\/code\u003e means a magnet is detected. HIGH means none.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eIf nothing happens, turn the magnet around.\u003c\/strong\u003e Only the south pole triggers a unipolar switch.\u003c\/li\u003e\n      \u003c\/ol\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/A3144-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the A3144 Hall Effect Switch Sensor - TO-92, 4.5V to 24V technical datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca id=\"quick-start-guide\" class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/A3144-QuickStart.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the A3144 Hall Effect Switch Sensor - TO-92, 4.5V to 24V quick start guide PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eQuick Start guide\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cdiv class=\"nznpd__block\"\u003e\n    \u003ch2 class=\"nznpd__h\"\u003eGreat for\u003c\/h2\u003e\n    \u003cdiv class=\"nznpd__uses\"\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eRPM and wheel speed\u003c\/strong\u003e\u003cp\u003eOne magnet on a wheel or shaft, counted on an interrupt pin, gives clean revolution counting.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eDoor and lid detection\u003c\/strong\u003e\u003cp\u003eNon-contact open\/closed sensing that will not wear out like a mechanical switch.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003e3D printer endstops\u003c\/strong\u003e\u003cp\u003eA contactless replacement for microswitches, unaffected by dust or repeated homing.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eMagnetic proximity\u003c\/strong\u003e\u003cp\u003eDetect presence through plastic, glass or a sealed enclosure wall.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eRobotics and automation\u003c\/strong\u003e\u003cp\u003eLimit detection and index marks where a contact switch would be fragile.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nznpd__use\"\u003e\n\u003cstrong\u003eTamper and reed replacement\u003c\/strong\u003e\u003cp\u003eA solid-state alternative to reed switches, with no glass envelope to break.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e the sensing element sits in the flat marked face, not the rounded back, so point that side at your magnet. Small neodymium magnets work far better than flexible fridge magnets, which are often too weak to trigger it. If you need the output to stay on after the magnet leaves, you want a latch such as the 41F or US1881 instead. Shipped from our Te Awamutu stock.\u003c\/p\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nvar NS=\"http:\/\/www.w3.org\/2000\/svg\";\nfunction el(t,a,p){var n=document.createElementNS(NS,t);for(var k in a)n.setAttribute(k,a[k]);if(p)p.appendChild(n);return n;}\nfunction stage(part){\n var s=document.createElementNS(NS,\"svg\");s.setAttribute(\"viewBox\",\"0 0 400 200\");s.setAttribute(\"role\",\"img\");\n s.setAttribute(\"aria-label\",\"Diagram of a magnet next to an \"+part+\" hall sensor and its output indicator\");\n var g=el(\"g\",{class:\"mag\",transform:\"translate(6,58)\"},s);\n var rF=el(\"rect\",{x:0,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var rN=el(\"rect\",{x:52,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var tF=el(\"text\",{x:26,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var tN=el(\"text\",{x:78,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var cp=el(\"text\",{x:52,y:88,\"text-anchor\":\"middle\",\"font-size\":12,fill:\"#5b6573\"},g);cp.textContent=\"magnet\";\n var P={south:{f:\"#EAF3FC\",s:\"#2F6FB0\",t:\"#17456f\",l:\"S\"},north:{f:\"#FDEEEB\",s:\"#C4452C\",t:\"#7d2415\",l:\"N\"}};\n function setFacing(x){var n=P[x===\"north\"?\"north\":\"south\"],f=P[x===\"north\"?\"south\":\"north\"];\n  rN.setAttribute(\"fill\",n.f);rN.setAttribute(\"stroke\",n.s);tN.setAttribute(\"fill\",n.t);tN.textContent=n.l;\n  rF.setAttribute(\"fill\",f.f);rF.setAttribute(\"stroke\",f.s);tF.setAttribute(\"fill\",f.t);tF.textContent=f.l;}\n setFacing(\"south\");\n var fl=el(\"g\",{class:\"flux\",opacity:0},s);\n [78,96,114].forEach(function(y){el(\"line\",{x1:132,y1:y,x2:186,y2:96,stroke:\"#94a3b8\",\"stroke-width\":1,\"stroke-dasharray\":\"4,3\"},fl);});\n el(\"polygon\",{points:\"186,91 196,96 186,101\",fill:\"#94a3b8\"},fl);\n var sg=el(\"g\",{transform:\"translate(196,50)\"},s);\n el(\"rect\",{x:0,y:0,width:96,height:92,rx:6,fill:\"#fff\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},sg);\n el(\"rect\",{x:0,y:0,width:6,height:92,rx:2,fill:\"#EEF2F6\"},sg);\n var a=el(\"text\",{x:51,y:34,\"text-anchor\":\"middle\",\"font-size\":13.5,\"font-weight\":700,fill:\"#0F172A\"},sg);a.textContent=part;\n var b=el(\"text\",{x:51,y:52,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},sg);b.textContent=\"marked face\";\n [22,49,76].forEach(function(x){el(\"line\",{x1:x,y1:92,x2:x,y2:118,stroke:\"#0F172A\",\"stroke-width\":2},sg);});\n [\"VCC\",\"GND\",\"OUT\"].forEach(function(l,i){var t=el(\"text\",{x:[22,49,76][i],y:132,\"text-anchor\":\"middle\",\"font-size\":11,fill:\"#5b6573\"},sg);t.textContent=l;});\n el(\"line\",{x1:292,y1:96,x2:326,y2:96,stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var led=el(\"circle\",{class:\"led\",cx:344,cy:96,r:15,fill:\"#F7F8FA\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var lt=el(\"text\",{x:344,y:78,\"text-anchor\":\"middle\",\"font-size\":12,\"font-weight\":700,fill:\"#5b6573\"},s);\n var lc=el(\"text\",{x:344,y:130,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},s);lc.textContent=\"output\";\n return {svg:s,mag:g,flux:fl,led:led,ledTxt:lt,setFacing:setFacing};\n}\nfunction build(root){\n var mode=root.getAttribute(\"data-mode\"),part=root.getAttribute(\"data-part\")||\"sensor\";\n var st=stage(part);\n var lay=document.createElement(\"div\");lay.className=\"nzndemo__layout\";\n var stg=document.createElement(\"div\");stg.className=\"nzndemo__stage\";stg.appendChild(st.svg);\n var side=document.createElement(\"div\");side.className=\"nzndemo__side\";\n lay.appendChild(stg);lay.appendChild(side);root.appendChild(lay);\n var cw=document.createElement(\"div\");var lab=document.createElement(\"p\");lab.className=\"nzndemo__label\";cw.appendChild(lab);side.appendChild(cw);\n var live=document.createElement(\"div\");live.setAttribute(\"role\",\"status\");live.setAttribute(\"aria-live\",\"polite\");\n live.style.display=\"flex\";live.style.flexDirection=\"column\";live.style.gap=\"12px\";side.appendChild(live);\n var status=document.createElement(\"div\");status.className=\"nzndemo__status\";live.appendChild(status);\n var info=document.createElement(\"div\");info.className=\"nzndemo__info\";\n var it=document.createElement(\"div\");it.className=\"nzndemo__info-t\";\n var ib=document.createElement(\"div\");ib.className=\"nzndemo__info-b\";\n info.appendChild(it);info.appendChild(ib);live.appendChild(info);\n function row(k,v){var r=document.createElement(\"div\");r.className=\"nzndemo__row\";var a=document.createElement(\"span\");a.className=\"nzndemo__k\";a.textContent=k;r.appendChild(a);r.appendChild(v);status.appendChild(r);}\n function sp(c){var s=document.createElement(\"span\");s.className=c;return s;}\n \/\/ Reserve the height of the tallest possible explainer so changing message\n \/\/ length never reflows the panel and shifts the page content below it.\n var PAIRS=[];\n function reserve(){\n  if(!PAIRS.length)return;\n  var pt=it.textContent,pb=ib.textContent,max=0;\n  info.style.minHeight=\"\";\n  PAIRS.forEach(function(p){it.textContent=p[0];ib.textContent=p[1];\n   var h=info.getBoundingClientRect().height;if(h\u003emax)max=h;});\n  it.textContent=pt;ib.textContent=pb;\n  info.style.minHeight=Math.ceil(max)+\"px\";\n }\n var rz;window.addEventListener(\"resize\",function(){clearTimeout(rz);rz=setTimeout(reserve,150);});\n lab.textContent=\"Present a magnet pole\";\n var bs=document.createElement(\"div\");bs.className=\"nzndemo__btns\";\n var defs=[{p:\"south\",t:\"South pole\u003cbr\u003eto marked face\"},{p:\"north\",t:\"North pole\u003cbr\u003eto marked face\"},{p:\"none\",t:\"Remove the magnet\",w:1}];\n var made={};\n defs.forEach(function(d){var b=document.createElement(\"button\");b.type=\"button\";\n  b.className=\"nzndemo__btn\"+(d.w?\" nzndemo__btn--wide\":\"\");b.setAttribute(\"data-pole\",d.p);\n  b.setAttribute(\"aria-pressed\",\"false\");b.innerHTML=d.t;bs.appendChild(b);made[d.p]=b;\n  b.addEventListener(\"click\",function(){apply(d.p);});});\n cw.appendChild(bs);\n var pinB=sp(\"nzndemo__v\"),outB=sp(\"nzndemo__badge\"),magB=sp(\"nzndemo__v\");\n row(\"Pin 3 (OUT)\",pinB);row(\"Output\",outB);row(\"Magnet\",magB);\n var M_S=\"The output pulls LOW while the south pole is close. This is the normal way to use a hall switch.\";\n var M_N=\"This part is unipolar, so a north pole does not trigger it at all. If your sensor seems dead, turn the magnet around.\";\n var M_R=\"A switch releases as soon as the magnet leaves. The output returns HIGH via the pull-up.\";\n PAIRS=[[\"South pole detected\",M_S],[\"Nothing happens\",M_N],[\"Magnet removed\",M_R]];\n var state=false,pole=\"none\";\n function apply(p){pole=p;for(var k in made){made[k].setAttribute(\"aria-pressed\",String(k===p));}\n  state=(p===\"south\");render();}\n function render(){\n  var on=state===true;\n  st.flux.setAttribute(\"opacity\",pole===\"none\"?\"0\":\"1\");\n  if(pole!==\"none\")st.setFacing(pole);\n  st.mag.setAttribute(\"transform\",\"translate(\"+(pole===\"none\"?6:60)+\",58)\");\n  magB.textContent=pole===\"none\"?\"none\":(pole===\"south\"?\"South pole\":\"North pole\");\n  pinB.textContent=on?\"LOW (0V)\":\"HIGH (pulled up)\";\n  outB.textContent=on?\"On\":\"Off\";outB.className=\"nzndemo__badge \"+(on?\"is-on\":\"is-off\");\n  st.led.setAttribute(\"fill\",on?\"#E4F5EF\":\"#F7F8FA\");st.led.setAttribute(\"stroke\",on?\"#0B6B57\":\"#CBD5E0\");\n  st.ledTxt.textContent=on?\"ON\":\"OFF\";\n  if(pole===\"south\"){it.textContent=\"South pole detected\";ib.textContent=M_S;}\n  else if(pole===\"north\"){it.textContent=\"Nothing happens\";ib.textContent=M_N;}\n  else{it.textContent=\"Magnet removed\";ib.textContent=M_R;}\n }\n render();\n var nz=document.createElement(\"div\");nz.className=\"nzndemo__notes\";\n var N=[[\"Unipolar\",\"Only a south pole on the marked face triggers it. A north pole does nothing at all.\"],[\"Releases\",\"Unlike a latch, the output goes back HIGH the moment the magnet leaves.\"],[\"Open collector\",\"The output can only pull down, so it needs a pull-up. Use INPUT_PULLUP.\"]];\n N.forEach(function(n){var d=document.createElement(\"div\");d.className=\"nzndemo__note\";\n  var a=document.createElement(\"div\");a.className=\"nzndemo__note-t\";a.textContent=n[0];\n  var b=document.createElement(\"div\");b.className=\"nzndemo__note-b\";b.textContent=n[1];\n  d.appendChild(a);d.appendChild(b);nz.appendChild(d);});\n root.appendChild(nz);\n root.appendChild(document.createElement(\"br\"));\n var cap=document.createElement(\"p\");cap.className=\"nzndemo__cap\";\n cap.textContent=\"Interactive simulation for illustration. Real thresholds vary with magnet grade, distance and temperature.\";\n root.appendChild(cap);\n reserve();\n if(document.fonts\u0026\u0026document.fonts.ready)document.fonts.ready.then(reserve);\n}\nfunction init(){var l=document.querySelectorAll(\".nzndemo\");for(var i=0;i\u003cl.length;i++){if(!l[i].getAttribute(\"data-built\")){l[i].setAttribute(\"data-built\",\"1\");build(l[i]);}}}\nif(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",init);else init();\n})();\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42758034849888,"sku":"A3144-HALL-TO92","price":0.59,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/A3144-single.png?v=1778883828"},{"product_id":"49e-linear-hall-effect-sensor-to-92-analog-arduino","title":"49E Linear Hall Effect Sensor - TO-92, 3V to 6.5V","description":"\u003cstyle\u003e.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6} .nznpd,.nznpd *{box-sizing:border-box} .nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65} .nznpd strong{color:var(--ink)} .nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:none} .nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px} .nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45} .nznpd__checks li::before{content:\"\\2713\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center} .nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px} .nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)} .nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px} .nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px} .nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center} .nznpd__steps strong{display:block;font-size:14px} .nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45} .nznpd__steps code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 5px} .nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)} .nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px} .nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)} .nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden} .nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px} .nznpd__spec:nth-child(odd){background:var(--soft)} .nznpd__spec span{color:var(--mut)} .nznpd__spec strong{font-weight:700} .nznpd__dsbar{display:flex;align-items:center;gap:11px;padding:14px 16px;border-top:2px solid var(--line);background:#FFF8F1;text-decoration:none;color:var(--od);font-weight:700;font-size:14px;line-height:1.3;transition:background .16s ease} .nznpd__dsbar:hover{background:#FCEBD8} .nznpd__dsbar svg{flex:0 0 auto;color:var(--o)} .nznpd__dsmeta{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap} .nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px} .nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center} .nznpd__included strong{display:block;font-size:15px;margin-bottom:3px} .nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px} .nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4} .nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55} @media (prefers-reduced-motion:reduce){.nznpd__dsbar{transition:none}} @media (max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\n.nzndemo{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;--s:#2F6FB0;--sbg:#EAF3FC;--n:#C4452C;--nbg:#FDEEEB;--ok:#0B6B57;--okbg:#E4F5EF;background:#fff;border:2px solid var(--line);border-radius:16px;padding:20px;font-family:inherit;color:var(--ink);line-height:1.5}\n.nzndemo,.nzndemo *{box-sizing:border-box}\n.nzndemo__layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:stretch}\n.nzndemo__stage{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;justify-content:center;align-items:center;min-height:236px}\n.nzndemo__stage svg{width:100%;max-width:560px;height:auto;display:block;overflow:visible}\n.nzndemo__side{display:flex;flex-direction:column;gap:12px;min-width:0}\n.nzndemo__label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin:0 0 7px}\n.nzndemo__slider{-webkit-appearance:none;appearance:none;width:100%;margin:4px 0 0;height:26px;background:transparent;cursor:pointer;display:block;touch-action:manipulation}\n.nzndemo__slider:focus{outline:none}\n.nzndemo__slider:focus-visible{outline:3px solid var(--o);outline-offset:3px;border-radius:8px}\n.nzndemo__slider::-webkit-slider-runnable-track{height:10px;border-radius:999px;border:1px solid var(--line);background:linear-gradient(90deg,var(--nbg) 0%,#eef1f4 46%,#eef1f4 54%,var(--sbg) 100%)}\n.nzndemo__slider::-moz-range-track{height:10px;border-radius:999px;border:1px solid var(--line);background:linear-gradient(90deg,var(--nbg) 0%,#eef1f4 46%,#eef1f4 54%,var(--sbg) 100%)}\n.nzndemo__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin-top:-8px;border-radius:999px;background:#fff;border:3px solid var(--o);box-shadow:0 1px 3px rgba(0,0,0,.2)}\n.nzndemo__slider::-moz-range-thumb{width:24px;height:24px;border-radius:999px;background:#fff;border:3px solid var(--o);box-shadow:0 1px 3px rgba(0,0,0,.2)}\n.nzndemo__ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--mut);margin-top:2px}\n.nzndemo__ticks b{font-weight:700;color:var(--ink)}\n.nzndemo__status{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:11px 13px;display:flex;flex-direction:column;gap:7px}\n.nzndemo__row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}\n.nzndemo__k{color:var(--mut)}\n.nzndemo__v{font-weight:700;font-variant-numeric:tabular-nums}\n.nzndemo__badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--line);color:var(--mut);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}\n.nzndemo__badge::before{content:\"\";width:7px;height:7px;border-radius:999px;background:currentColor;flex:0 0 auto}\n.nzndemo__badge.is-on{background:var(--okbg);color:var(--ok)}\n.nzndemo__badge.is-off{background:var(--nbg);color:#7d2415}\n.nzndemo__meter{position:relative;height:22px;border-radius:6px;background:#eef1f4;border:1px solid var(--line);overflow:hidden}\n.nzndemo__fill{position:absolute;top:0;bottom:0;left:50%;width:0;background:var(--o);transition:width .18s ease,left .18s ease,background .18s ease}\n.nzndemo__mid{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#94a3b8;z-index:1}\n.nzndemo__mlabels{display:flex;justify-content:space-between;font-size:11px;color:var(--mut);margin-top:3px}\n.nzndemo__info{background:#FFF9F5;border:1px solid #FCE0C6;border-radius:10px;padding:11px 13px}\n.nzndemo__info-t{font-size:12px;font-weight:800;color:var(--od);margin-bottom:3px}\n.nzndemo__info-b{font-size:12.5px;color:var(--mut);line-height:1.55}\n.nzndemo__notes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}\n.nzndemo__note{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}\n.nzndemo__note-t{font-size:11px;font-weight:800;margin-bottom:3px}\n.nzndemo__note-b{font-size:11.5px;color:var(--mut);line-height:1.5}\n.nzndemo__cap{font-size:11.5px;color:var(--mut);margin:12px 0 0}\n.nzndemo .mag{transition:transform .28s cubic-bezier(.34,1.4,.64,1)}\n.nzndemo .flux{transition:opacity .2s ease}\n.nzndemo .led{transition:fill .18s ease,stroke .18s ease}\n@media (prefers-reduced-motion:reduce){.nzndemo *,.nzndemo *::before{transition:none!important;animation:none!important}}\n@media(max-width:749px){.nzndemo{padding:16px}.nzndemo__stage{min-height:0;padding:8px}.nzndemo__layout{grid-template-columns:minmax(0,1fr)}.nzndemo__notes{grid-template-columns:1fr}}\n\u003c\/style\u003e\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eMost hall sensors only tell you a magnet is there. This one tells you \u003cstrong\u003ehow strong the field is and which pole it came from\u003c\/strong\u003e. With nothing near it the output sits at half your supply voltage, and from there it rises toward Vcc for a south pole or drops toward 0V for a north pole. Wire it to an analog pin, call \u003cstrong\u003eanalogRead\u003c\/strong\u003e, and you have a live field reading with no library and no extra parts. It runs on 3V to 6.5V, so it drops straight onto a 5V Arduino or a 3.3V ESP32.\u003c\/p\u003e\n\u003cbr\u003e\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eAnalog output, not a simple on\/off switch\u003c\/li\u003e\n\u003cli\u003eReads field strength and polarity\u003c\/li\u003e\n\u003cli\u003eIdle output sits at half the supply\u003c\/li\u003e\n\u003cli\u003eRatiometric, so it tracks your supply rail\u003c\/li\u003e\n\u003cli\u003eSensitivity around 1.4mV per gauss at 5V\u003c\/li\u003e\n\u003cli\u003eWorks on 3.3V or 5V logic as-is\u003c\/li\u003e\n\u003cli\u003eNo library needed, one analogRead call\u003c\/li\u003e\n\u003cli\u003eFast: 3us response, DC to 20kHz\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eHow it works\u003c\/h3\u003e\n\u003cdiv class=\"nzndemo\" data-mode=\"linear\" data-part=\"49E\" data-vcc=\"5\" data-sens=\"14\" data-range=\"90\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003e49E (also sold as SS49E)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor type\u003c\/span\u003e\u003cstrong\u003eLinear ratiometric hall effect\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply voltage\u003c\/span\u003e\u003cstrong\u003e3.0V to 6.5V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply current\u003c\/span\u003e\u003cstrong\u003e6 to 10mA typical\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput type\u003c\/span\u003e\u003cstrong\u003eAnalog voltage\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eQuiescent output\u003c\/span\u003e\u003cstrong\u003eVcc \/ 2 (2.5V on a 5V supply)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensitivity\u003c\/span\u003e\u003cstrong\u003e1.0 to 1.75mV\/G (1.4mV\/G typical at 5V)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLinear range\u003c\/span\u003e\u003cstrong\u003e+\/-650G, usable to +\/-1000G\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput swing\u003c\/span\u003e\u003cstrong\u003eabout 1V to Vcc minus 1V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput current\u003c\/span\u003e\u003cstrong\u003e1.5mA max source or sink\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eResponse time\u003c\/span\u003e\u003cstrong\u003e3us (bandwidth DC to 20kHz)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating temp\u003c\/span\u003e\u003cstrong\u003e-40°C to +85°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePackage\u003c\/span\u003e\u003cstrong\u003eTO-92UA, 3-pin, approx 4.1 x 3.1mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePinout\u003c\/span\u003e\u003cstrong\u003ePrinted face toward you, legs down: 1 VCC \/ 2 GND \/ 3 OUT\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSKU\u003c\/span\u003e\u003cstrong\u003e49E-HALL-TO92\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/49E-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the full 49E technical datasheet (PDF)\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e5×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e49E linear hall effect sensors, TO-92\u003c\/strong\u003e\u003cp\u003eSold in fives (minimum order 5), loose in an antistatic bag. Add more in any quantity you like.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eContactless position and distance sensing\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eThrottle and joystick triggers\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRPM, wheel and fan speed\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eCurrent sensing with a cored magnet\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eDoor, lid and end-stop detection\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eChecking which pole a magnet is\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring and first reading\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eHold it printed face toward you, legs down\u003c\/strong\u003e\u003cp\u003ePins run left to right: 1 is VCC, 2 is GND, 3 is OUT.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower it from the same rail your ADC uses\u003c\/strong\u003e\u003cp\u003e5V pin on an Arduino, 3.3V on an ESP32. The output is ratiometric, so matching rails keeps readings steady.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eRun OUT to an analog input\u003c\/strong\u003e\u003cp\u003eA0 on an Arduino, any ADC pin on an ESP32. A 0.1uF cap across VCC and GND at the sensor helps if the supply is noisy.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eRead it and note the idle value\u003c\/strong\u003e\u003cp\u003e\u003ccode\u003eanalogRead(A0)\u003c\/code\u003e with no magnet nearby gives you your zero, around 512 on a 5V Arduino. Above that is a south pole, below is a north pole.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConvert to gauss if you want real units\u003c\/strong\u003e\u003cp\u003e\u003ccode\u003eG = (counts - zero) * (5.0 \/ 1023) * 1000 \/ 1.4\u003c\/code\u003e. The full worked sketch is in the datasheet PDF linked above.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e the sensing face is the flat printed side of the TO-92 body, so point that at your magnet. If the reading swings the opposite way to what you expected, turn the magnet around. Shipped from our Te Awamutu stock.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\nvar NS=\"http:\/\/www.w3.org\/2000\/svg\";\nfunction el(t,a,p){var n=document.createElementNS(NS,t);for(var k in a)n.setAttribute(k,a[k]);if(p)p.appendChild(n);return n;}\nfunction stage(part){\n var s=document.createElementNS(NS,\"svg\");s.setAttribute(\"viewBox\",\"0 0 400 200\");s.setAttribute(\"role\",\"img\");\n s.setAttribute(\"aria-label\",\"Diagram of a magnet next to an \"+part+\" hall sensor and its output indicator\");\n var g=el(\"g\",{class:\"mag\",transform:\"translate(6,58)\"},s);\n var rF=el(\"rect\",{x:0,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var rN=el(\"rect\",{x:52,y:0,width:52,height:70,rx:5,\"stroke-width\":1.5},g);\n var tF=el(\"text\",{x:26,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var tN=el(\"text\",{x:78,y:42,\"text-anchor\":\"middle\",\"font-size\":21,\"font-weight\":700},g);\n var cp=el(\"text\",{x:52,y:88,\"text-anchor\":\"middle\",\"font-size\":12,fill:\"#5b6573\"},g);cp.textContent=\"magnet\";\n var P={south:{f:\"#EAF3FC\",s:\"#2F6FB0\",t:\"#17456f\",l:\"S\"},north:{f:\"#FDEEEB\",s:\"#C4452C\",t:\"#7d2415\",l:\"N\"}};\n function setFacing(x){var n=P[x===\"north\"?\"north\":\"south\"],f=P[x===\"north\"?\"south\":\"north\"];\n  rN.setAttribute(\"fill\",n.f);rN.setAttribute(\"stroke\",n.s);tN.setAttribute(\"fill\",n.t);tN.textContent=n.l;\n  rF.setAttribute(\"fill\",f.f);rF.setAttribute(\"stroke\",f.s);tF.setAttribute(\"fill\",f.t);tF.textContent=f.l;}\n setFacing(\"south\");\n var fl=el(\"g\",{class:\"flux\",opacity:0},s);\n [78,96,114].forEach(function(y){el(\"line\",{x1:132,y1:y,x2:186,y2:96,stroke:\"#94a3b8\",\"stroke-width\":1,\"stroke-dasharray\":\"4,3\"},fl);});\n el(\"polygon\",{points:\"186,91 196,96 186,101\",fill:\"#94a3b8\"},fl);\n var sg=el(\"g\",{transform:\"translate(196,50)\"},s);\n el(\"rect\",{x:0,y:0,width:96,height:92,rx:6,fill:\"#fff\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},sg);\n el(\"rect\",{x:0,y:0,width:6,height:92,rx:2,fill:\"#EEF2F6\"},sg);\n var a=el(\"text\",{x:51,y:34,\"text-anchor\":\"middle\",\"font-size\":13.5,\"font-weight\":700,fill:\"#0F172A\"},sg);a.textContent=part;\n var b=el(\"text\",{x:51,y:52,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},sg);b.textContent=\"marked face\";\n [22,49,76].forEach(function(x){el(\"line\",{x1:x,y1:92,x2:x,y2:118,stroke:\"#0F172A\",\"stroke-width\":2},sg);});\n [\"VCC\",\"GND\",\"OUT\"].forEach(function(l,i){var t=el(\"text\",{x:[22,49,76][i],y:132,\"text-anchor\":\"middle\",\"font-size\":11,fill:\"#5b6573\"},sg);t.textContent=l;});\n el(\"line\",{x1:292,y1:96,x2:326,y2:96,stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var led=el(\"circle\",{class:\"led\",cx:344,cy:96,r:15,fill:\"#F7F8FA\",stroke:\"#CBD5E0\",\"stroke-width\":1.5},s);\n var lt=el(\"text\",{x:344,y:78,\"text-anchor\":\"middle\",\"font-size\":12,\"font-weight\":700,fill:\"#5b6573\"},s);\n var lc=el(\"text\",{x:344,y:130,\"text-anchor\":\"middle\",\"font-size\":11.5,fill:\"#5b6573\"},s);lc.textContent=\"output\";\n return {svg:s,mag:g,flux:fl,led:led,ledTxt:lt,setFacing:setFacing};\n}\nfunction build(root){\n var part=root.getAttribute(\"data-part\")||\"sensor\";\n var vcc=parseFloat(root.getAttribute(\"data-vcc\")||\"5\"),sens=parseFloat(root.getAttribute(\"data-sens\")||\"14\"),range=parseFloat(root.getAttribute(\"data-range\")||\"90\");\n var st=stage(part);\n var lay=document.createElement(\"div\");lay.className=\"nzndemo__layout\";\n var stg=document.createElement(\"div\");stg.className=\"nzndemo__stage\";stg.appendChild(st.svg);\n var side=document.createElement(\"div\");side.className=\"nzndemo__side\";\n lay.appendChild(stg);lay.appendChild(side);root.appendChild(lay);\n var cw=document.createElement(\"div\");var lab=document.createElement(\"p\");lab.className=\"nzndemo__label\";cw.appendChild(lab);side.appendChild(cw);\n var live=document.createElement(\"div\");live.setAttribute(\"role\",\"status\");live.setAttribute(\"aria-live\",\"polite\");\n live.style.display=\"flex\";live.style.flexDirection=\"column\";live.style.gap=\"12px\";side.appendChild(live);\n var status=document.createElement(\"div\");status.className=\"nzndemo__status\";live.appendChild(status);\n var info=document.createElement(\"div\");info.className=\"nzndemo__info\";\n var it=document.createElement(\"div\");it.className=\"nzndemo__info-t\";\n var ib=document.createElement(\"div\");ib.className=\"nzndemo__info-b\";\n info.appendChild(it);info.appendChild(ib);live.appendChild(info);\n function row(k,v){var r=document.createElement(\"div\");r.className=\"nzndemo__row\";var a=document.createElement(\"span\");a.className=\"nzndemo__k\";a.textContent=k;r.appendChild(a);r.appendChild(v);status.appendChild(r);}\n function sp(c){var s=document.createElement(\"span\");s.className=c;return s;}\n \/\/ Reserve the height of the tallest possible explainer so changing message\n \/\/ length never reflows the panel and shifts the page content below it.\n var PAIRS=[];\n function reserve(){\n  if(!PAIRS.length)return;\n  var pt=it.textContent,pb=ib.textContent,max=0;\n  info.style.minHeight=\"\";\n  PAIRS.forEach(function(p){it.textContent=p[0];ib.textContent=p[1];\n   var h=info.getBoundingClientRect().height;if(h\u003emax)max=h;});\n  it.textContent=pt;ib.textContent=pb;\n  info.style.minHeight=Math.ceil(max)+\"px\";\n }\n var rz;window.addEventListener(\"resize\",function(){clearTimeout(rz);rz=setTimeout(reserve,150);});\n lab.textContent=\"Field at the sensor\";\n var smax=Math.round(range*1.6);\n var sl=document.createElement(\"input\");sl.type=\"range\";sl.className=\"nzndemo__slider\";\n sl.min=String(-smax);sl.max=String(smax);sl.step=\"1\";sl.value=\"0\";\n sl.setAttribute(\"aria-label\",\"Magnetic field in millitesla, negative is a north pole, positive is a south pole\");\n cw.appendChild(sl);\n var tk=document.createElement(\"div\");tk.className=\"nzndemo__ticks\";\n tk.innerHTML=\"\u003cspan\u003eN \"+smax+\" mT\u003c\/span\u003e\u003cspan\u003e\u003cb\u003e0\u003c\/b\u003e\u003c\/span\u003e\u003cspan\u003eS \"+smax+\" mT\u003c\/span\u003e\";cw.appendChild(tk);\n var mw=document.createElement(\"div\");\n var ml=document.createElement(\"p\");ml.className=\"nzndemo__label\";ml.style.marginTop=\"14px\";ml.textContent=\"Output swing from midpoint\";\n var mt2=document.createElement(\"div\");mt2.className=\"nzndemo__meter\";\n var fill=document.createElement(\"div\");fill.className=\"nzndemo__fill\";\n var mid=document.createElement(\"div\");mid.className=\"nzndemo__mid\";\n mt2.appendChild(fill);mt2.appendChild(mid);\n var mls=document.createElement(\"div\");mls.className=\"nzndemo__mlabels\";\n mls.innerHTML=\"\u003cspan\u003e0V\u003c\/span\u003e\u003cspan\u003e\"+(vcc\/2).toFixed(1)+\"V\u003c\/span\u003e\u003cspan\u003e\"+vcc.toFixed(1)+\"V\u003c\/span\u003e\";\n mw.appendChild(ml);mw.appendChild(mt2);mw.appendChild(mls);cw.appendChild(mw);\n var vB=sp(\"nzndemo__v\"),cB=sp(\"nzndemo__v\"),pB=sp(\"nzndemo__badge\");\n row(\"Output voltage\",vB);row(\"analogRead\",cB);row(\"Pole at marked face\",pB);\n var M_ZERO=\"With no field the output rests at half the supply, about \"+(vcc\/2).toFixed(2)+\"V, which reads near 512 on a 5V Arduino. Calibrate this as your zero.\";\n var M_SAT=\"Beyond ±\"+range+\"mT the curve flattens. The magnet keeps getting stronger but the output stops moving, so you can no longer work backwards from voltage to field strength.\";\n var M_S=\"A south pole on the marked face drives the output up from the midpoint, about \"+sens+\"mV per mT.\";\n var M_N=\"A north pole on the marked face drives the output down from the midpoint, about \"+sens+\"mV per mT.\";\n PAIRS=[[\"Quiescent point\",M_ZERO],[\"Past the linear range\",M_SAT],[\"South pole approaching\",M_S],[\"North pole approaching\",M_N]];\n var upd=function(){\n  var m=parseFloat(sl.value);\n  var sat=Math.abs(m)\u003erange;var eff=Math.max(-range,Math.min(range,m));\n  var v=vcc\/2+(eff*sens\/1000);var lo=0.2,hi=vcc-0.2;\n  if(v\u003clo){v=lo;sat=true;}if(v\u003ehi){v=hi;sat=true;}\n  vB.textContent=v.toFixed(2)+\" V\";cB.textContent=String(Math.round(v\/vcc*1023));\n  var fr=Math.max(-1,Math.min(1,(v-vcc\/2)\/(vcc\/2)));\n  fill.style.left=(fr\u003c0?50+fr*50:50)+\"%\";fill.style.width=Math.abs(fr)*50+\"%\";\n  fill.style.background=fr\u003c0?\"#C4452C\":\"var(--o)\";\n  st.flux.setAttribute(\"opacity\",m===0?\"0\":\"1\");\n  if(m!==0)st.setFacing(m\u003c0?\"north\":\"south\");\n  st.mag.setAttribute(\"transform\",\"translate(\"+(6+Math.min(1,Math.abs(m)\/range)*54)+\",58)\");\n  if(m\u003e0){pB.textContent=\"South\";pB.className=\"nzndemo__badge is-on\";}\n  else if(m\u003c0){pB.textContent=\"North\";pB.className=\"nzndemo__badge is-off\";}\n  else{pB.textContent=\"No field\";pB.className=\"nzndemo__badge\";}\n  st.led.setAttribute(\"fill\",m\u003e0?\"#EAF3FC\":m\u003c0?\"#FDEEEB\":\"#F7F8FA\");\n  st.led.setAttribute(\"stroke\",m\u003e0?\"#2F6FB0\":m\u003c0?\"#C4452C\":\"#CBD5E0\");\n  st.ledTxt.textContent=v.toFixed(1)+\"V\";\n  if(m===0){it.textContent=\"Quiescent point\";ib.textContent=M_ZERO;}\n  else if(sat){it.textContent=\"Past the linear range\";ib.textContent=M_SAT;}\n  else if(m\u003e0){it.textContent=\"South pole approaching\";ib.textContent=M_S;}\n  else{it.textContent=\"North pole approaching\";ib.textContent=M_N;}\n };\n sl.addEventListener(\"input\",upd);upd();\n var nz=document.createElement(\"div\");nz.className=\"nzndemo__notes\";\n var N=[[\"Ratiometric\",\"Idle point and sensitivity both scale with your supply, so power the sensor from the same rail your ADC references.\"],[\"Sensitivity\",\"About \"+sens+\"mV per mT. Subtract your calibrated zero, then divide by that to get field strength.\"],[\"Saturation\",\"Past ±\"+range+\"mT the curve flattens. Keep the magnet far enough away to stay in the linear zone.\"]];\n N.forEach(function(n){var d=document.createElement(\"div\");d.className=\"nzndemo__note\";\n  var a=document.createElement(\"div\");a.className=\"nzndemo__note-t\";a.textContent=n[0];\n  var b=document.createElement(\"div\");b.className=\"nzndemo__note-b\";b.textContent=n[1];\n  d.appendChild(a);d.appendChild(b);nz.appendChild(d);});\n root.appendChild(nz);\n root.appendChild(document.createElement(\"br\"));\n var cap=document.createElement(\"p\");cap.className=\"nzndemo__cap\";\n cap.textContent=\"Interactive simulation for illustration. Real thresholds vary with magnet grade, distance and temperature.\";\n root.appendChild(cap);\n reserve();\n if(document.fonts\u0026\u0026document.fonts.ready)document.fonts.ready.then(reserve);\n}\nfunction init(){var l=document.querySelectorAll(\".nzndemo\");for(var i=0;i\u003cl.length;i++){if(!l[i].getAttribute(\"data-built\")){l[i].setAttribute(\"data-built\",\"1\");build(l[i]);}}}\nif(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",init);else init();\n})();\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42757477662816,"sku":"49E-HALL-TO92","price":0.59,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/49E_Singlewhole.png?v=1779316947"},{"product_id":"gy-bmp280-barometric-pressure-temperature-sensor-5v-3-3v","title":"GY-BMP280 Barometric Pressure \u0026 Temperature Sensor - 5V or 3.3V, I2C\/SPI","description":"\u003cstyle\u003e.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;line-height:1.6}.nznpd,.nznpd *{box-sizing:border-box}.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}.nznpd strong{color:var(--ink)}.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6}.nznpd__highlights{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:36px}.nznpd__highlights li{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--ink);line-height:1.5;padding:12px 0;border-bottom:1px solid var(--line)}.nznpd__highlights li::before{content:'▸';flex:0 0 auto;color:var(--o);font-size:12px;line-height:1.75}.nznpd__highlights li:nth-last-child(-n+2){border-bottom:none}.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}.nznpd__h{margin:0 0 24px;padding-bottom:10px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}.nznpd__h::before{content:'';flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}.nznpd__spec:nth-child(odd){background:var(--soft)}.nznpd__spec span{color:var(--mut)}.nznpd__spec strong{font-weight:700}.nznpd__dsbar{display:flex;align-items:center;gap:11px;padding:14px 16px;border-top:2px solid var(--line);background:#FFF8F1;text-decoration:none;color:var(--od);font-weight:700;font-size:14px;line-height:1.3;transition:background .16s ease}.nznpd__dsbar:hover{background:#FCEBD8}.nznpd__dsbar svg{flex:0 0 auto;color:var(--o)}.nznpd__dsmeta{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}.nznpd__code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:#fff;border:1px solid #FCE0C6;border-radius:6px;padding:1px 6px;color:var(--od)}@media (prefers-reduced-motion:reduce){.nznpd__dsbar{transition:none}}@media (max-width:749px){.nznpd{padding-left:14px;padding-right:14px}.nznpd__highlights{grid-template-columns:1fr}.nznpd__highlights li:nth-last-child(2){border-bottom:1px solid var(--line)}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}.nznpd__h{margin-bottom:16px}}\u003c\/style\u003e\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eA Bosch \u003cstrong\u003eBMP280\u003c\/strong\u003e pressure and temperature sensor on the 5V-ready GY-BMP280 breakout. Unlike the bare purple 3.3V modules, this one carries its own \u003cstrong\u003e3.3V regulator and I2C level shifter\u003c\/strong\u003e, so it wires straight to a 5V Uno, Nano or Mega as well as a 3.3V ESP32, ESP8266 or Pi with no extra parts. It reads barometric pressure to \u003cstrong\u003e±1 hPa\u003c\/strong\u003e, temperature to \u003cstrong\u003e±1°C\u003c\/strong\u003e, and derives altitude to about a metre.\u003c\/p\u003e\n\u003cul class=\"nznpd__highlights\"\u003e\n\u003cli\u003eBosch BMP280 pressure and temperature sensor\u003c\/li\u003e\n\u003cli\u003eWorks on 5V and 3.3V boards, regulator and level shifter fitted\u003c\/li\u003e\n\u003cli\u003ePressure 300 to 1100 hPa, plus or minus 1 hPa\u003c\/li\u003e\n\u003cli\u003eTemperature -40 to +85°C, plus or minus 1°C\u003c\/li\u003e\n\u003cli\u003eAltitude resolution around 1 metre relative\u003c\/li\u003e\n\u003cli\u003eI2C (0x76 default, 0x77 selectable) or SPI\u003c\/li\u003e\n\u003cli\u003eOnboard I2C pull-ups, no external resistors needed\u003c\/li\u003e\n\u003cli\u003eAbout 2.7uA at 1Hz, suited to battery and IoT nodes\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor\u003c\/span\u003e\u003cstrong\u003eBosch BMP280\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard\u003c\/span\u003e\u003cstrong\u003eGY-BMP280, 5V variant with regulator and level shifter\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMeasures\u003c\/span\u003e\u003cstrong\u003eBarometric pressure, temperature, derived altitude\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePressure range\u003c\/span\u003e\u003cstrong\u003e300 to 1100 hPa, ±1 hPa absolute\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTemperature range\u003c\/span\u003e\u003cstrong\u003e-40 to +85°C, ±1.0°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eAltitude\u003c\/span\u003e\u003cstrong\u003eDerived from pressure, around ±1 m relative\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eI2C (default) or SPI, 4-wire\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eI2C address\u003c\/span\u003e\u003cstrong\u003e0x76 with SDO low, 0x77 with SDO high\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply voltage\u003c\/span\u003e\u003cstrong\u003e3.3V to 5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLogic levels\u003c\/span\u003e\u003cstrong\u003e5V and 3.3V safe, level shifted on board\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCurrent draw\u003c\/span\u003e\u003cstrong\u003eAbout 2.7uA at 1Hz sampling\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePins\u003c\/span\u003e\u003cstrong\u003e6: VCC, GND, SCL, SDA, CSB, SDO\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard size\u003c\/span\u003e\u003cstrong\u003eAbout 21 x 11mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMarking\u003c\/span\u003e\u003cstrong\u003eRoHS\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/GY-BMP280-5V-Datasheet-v2.pdf?v=1783123032\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the full GY-BMP280 5V technical datasheet (PDF)\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet, wiring and register notes\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWiring\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eVCC\u003c\/span\u003e\u003cstrong\u003e5V or 3.3V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eGND\u003c\/span\u003e\u003cstrong\u003eGround\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSCL\u003c\/span\u003e\u003cstrong\u003eA5 on Uno or Nano, GPIO22 on ESP32\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSDA\u003c\/span\u003e\u003cstrong\u003eA4 on Uno or Nano, GPIO21 on ESP32\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSDO\u003c\/span\u003e\u003cstrong\u003eGND for address 0x76, VCC for 0x77\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCSB\u003c\/span\u003e\u003cstrong\u003eLeave open for I2C, pulled high on board\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eGY-BMP280 sensor module (5V)\u003c\/strong\u003e\u003cp\u003eChecked before it leaves us.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__included\" style=\"margin-top:10px\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e6-pin 2.54mm male header strip\u003c\/strong\u003e\u003cp\u003eSupplied loose, not fitted, so you can solder it straight or right-angle to suit the build.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eWeather stations and environmental logging\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAltimeters and drone altitude hold\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eESPHome and Home Assistant sensor nodes\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eIndoor floor and elevation detection\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eStorm and barometric trend watching\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eArduino and STEM learning projects\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e this is a \u003cstrong\u003eBMP280\u003c\/strong\u003e, so it reads pressure and temperature but \u003cstrong\u003enot humidity\u003c\/strong\u003e - pick a BME280 if you need humidity as well. Install the Adafruit BMP280 library through the Arduino Library Manager and run the example sketch; if the sketch cannot find the sensor, try address \u003cspan class=\"nznpd__code\"\u003e0x77\u003c\/span\u003e instead of \u003cspan class=\"nznpd__code\"\u003e0x76\u003c\/span\u003e, since some boards ship with SDO pulled the other way. Altitude is calculated from pressure, so it needs the current sea-level pressure to read as an absolute height, and it drifts as the weather changes.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42780549120096,"sku":"MOD-BMP280-5V-1","price":4.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/GY-BMP-280-5V.png?v=1780277056"},{"product_id":"0-96-oled-display-module-128x64-i2c-ssd1306-arduino-compatible","title":"0.96\" OLED Display Module 128x64 I2C SSD1315 - Arduino Compatible","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThis 0.96 inch SSD1315 OLED display module gives an Arduino, ESP32 or other microcontroller a compact 128 x 64 pixel screen over four I2C connections. Choose the illuminated screen colour: White and Yellow have black PCBs; Yellow\/Blue and Blue have blue PCBs. The Yellow\/Blue panel has a fixed yellow upper band and blue lower area.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eScreen\u003c\/span\u003e\u003cstrong\u003e0.96 inch diagonal, 128 x 64 pixels\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eController\u003c\/span\u003e\u003cstrong\u003eSSD1315\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eI2C, four pads: GND, VDD, SCK, SDA\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e3.3 V to 5 V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDefault I2C address\u003c\/span\u003e\u003cstrong\u003e0x3C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCode libraries\u003c\/span\u003e\u003cstrong\u003eAdafruit SSD1306 with GFX, or U8g2\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eWhite or Yellow\u003c\/span\u003e\u003cstrong\u003eSingle-colour screen, black PCB\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eYellow\/Blue\u003c\/span\u003e\u003cstrong\u003eYellow upper band and blue lower area, blue PCB\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBlue\u003c\/span\u003e\u003cstrong\u003eSingle-colour blue screen, blue PCB\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/OLED096-SSD1315-Colour-Variants-Datasheet-v3.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the OLED colour variants technical datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e0.96 inch OLED display module in your selected colour\u003c\/strong\u003e\u003cp\u003eOne module with a four-pad I2C connection.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eArduino and ESP32 status screens\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSensor and weather readouts\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSmall menus and project interfaces\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power\u003c\/strong\u003e\u003cp\u003eConnect GND to ground and VDD to a 3.3 V or 5 V supply.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect I2C\u003c\/strong\u003e\u003cp\u003eConnect SCK to SCL and SDA to SDA. On an Arduino Uno or Nano, use A5 for SCK and A4 for SDA.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eRun a display example\u003c\/strong\u003e\u003cp\u003eSelect 128 x 64 pixels and I2C address 0x3C in an Adafruit SSD1306 or U8g2 example. If the screen stays blank, scan the I2C bus to confirm the address.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"White","offer_id":42796615237728,"sku":"OLED096-W","price":5.69,"currency_code":"NZD","in_stock":true},{"title":"Yellow\/Blue","offer_id":42796615336032,"sku":"OLED096-YB","price":5.69,"currency_code":"NZD","in_stock":true},{"title":"Yellow","offer_id":43093008384096,"sku":"OLED096-Y","price":5.69,"currency_code":"NZD","in_stock":true},{"title":"Blue","offer_id":50520892997728,"sku":"OLED096-BLU-1","price":5.89,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/TZT-0.96-inch-OLED-Product-Hero-W.png?v=1780559562"},{"product_id":"hc-sr04-ultrasonic-distance-sensor-module","title":"HC-SR04 Ultrasonic Distance Sensor Module","description":"\u003c!--\n  NZN Electronics — HC-SR04 Ultrasonic Distance Sensor\n  Description Template v5\n  SEO: all content in DOM, semantic HTML, dl\/dt\/dd specs\n--\u003e\n\n\u003cstyle\u003e\n  \/* ── Root ── *\/\n  .nznd { width: 100%; max-width: 1400px; margin: 0 auto; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #101114; }\n  .nznd, .nznd * { box-sizing: border-box; }\n\n  \/* ── Tabs ── *\/\n  .nznd__tabs { width: 100%; display: flex; gap: 0; border-bottom: 2px solid #e7e7e7; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }\n  .nznd__tabs::-webkit-scrollbar { display: none; }\n  .nznd__tab {\n    flex: 0 0 auto; background: none; border: none;\n    border-bottom: 2px solid transparent; margin-bottom: -2px;\n    padding: 13px 18px;\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    font-size: 13.5px; font-weight: 700; white-space: nowrap; color: #60646c;\n    cursor: pointer; transition: color .16s, border-color .16s;\n  }\n  .nznd__tab:hover { color: #ff7a2f; }\n  .nznd__tab.is-active { color: #ff7a2f; border-bottom-color: #ff7a2f; }\n\n  \/* ── Card ── *\/\n  .nznd__card {\n    width: 100%; background: #fff;\n    border: 1px solid #e7e7e7; border-top: none;\n    border-radius: 0 0 16px 16px;\n    padding: 36px 32px;\n    box-shadow: 0 8px 24px rgba(0,0,0,.04);\n    min-height: 480px;\n  }\n\n  \/* ── Panels ── *\/\n  .nznd__panel { display: none; }\n  .nznd__panel.is-active { display: block; animation: nzndIn .22s cubic-bezier(.22,.68,0,1.2) both; }\n  @keyframes nzndIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\n\n  \/* ── Force left-align ── *\/\n  .nznd__panel h2, .nznd__panel h3, .nznd__panel p,\n  .nznd__panel li, .nznd__panel dt, .nznd__panel dd,\n  .nznd__panel strong, .nznd__panel span { text-align: left; }\n  .nznd__stat span { text-align: center; }\n\n  \/* ── Orange accent strip ── *\/\n  .nznd__strip { border-left: 3px solid #ff7a2f; background: #fff5ef; border-radius: 0 10px 10px 0; padding: 18px 20px; margin-bottom: 24px; }\n  .nznd__strip h2 { font-size: 18px; font-weight: 800; color: #101114; margin: 0 0 7px; line-height: 1.25; text-align: left; }\n  .nznd__strip p  { font-size: 14px; line-height: 1.65; color: #60646c; margin: 0; text-align: left; }\n\n  \/* ── Stat cards ── *\/\n  .nznd__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 22px; }\n  .nznd__stat {\n    background: #f9fafb; border: 1px solid #e7e7e7; border-top: 3px solid transparent;\n    border-radius: 10px; padding: 14px 12px; text-align: center;\n    transition: border-top-color .18s, box-shadow .18s;\n  }\n  .nznd__stat:hover { border-top-color: #ff7a2f; box-shadow: 0 4px 12px rgba(255,122,47,.1); }\n  .nznd__stat-val { display: block; font-size: 19px; font-weight: 800; color: #101114; letter-spacing: -.02em; white-space: nowrap; margin-bottom: 4px; text-align: center; }\n  .nznd__stat-lbl { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #60646c; text-align: center; }\n\n  \/* ── Feature pills ── *\/\n  .nznd__pills { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 22px; }\n  .nznd__pill { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid #e7e7e7; border-radius: 999px; padding: 6px 13px; font-size: 13px; font-weight: 500; color: #101114; box-shadow: 0 1px 3px rgba(0,0,0,.05); }\n  .nznd__dot { width: 7px; height: 7px; border-radius: 50%; background: #ff7a2f; flex-shrink: 0; display: inline-block; }\n  .nznd__dot--blue { background: #4a9af7; }\n\n  \/* ── Callout ── *\/\n  .nznd__callout { display: flex; align-items: flex-start; gap: 12px; border-radius: 10px; padding: 15px 18px; margin-bottom: 22px; }\n  .nznd__callout--orange { background: #fff5ef; border: 1px solid rgba(255,122,47,.3); }\n  .nznd__callout--blue   { background: #eef5ff; border: 1px solid rgba(74,154,247,.3); }\n  .nznd__callout svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; }\n  .nznd__callout strong { display: block; font-size: 13px; font-weight: 700; color: #101114; margin-bottom: 4px; text-align: left; }\n  .nznd__callout p { font-size: 13px; line-height: 1.6; color: #60646c; margin: 0; text-align: left; }\n\n  \/* ── Eyebrow label ── *\/\n  .nznd__eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #ff7a2f; margin: 0 0 16px; text-align: left; }\n  .nznd__body { font-size: 14.5px; line-height: 1.7; color: #60646c; margin: 0 0 22px; text-align: left; }\n\n  \/* ── Spec dl table ── *\/\n  .nznd__specs { border: 1px solid #e7e7e7; border-radius: 10px; overflow: hidden; margin-bottom: 22px; }\n  .nznd__spec-row { display: grid; grid-template-columns: minmax(170px, .85fr) 1.4fr; border-bottom: 1px solid #e7e7e7; }\n  .nznd__spec-row:last-child { border-bottom: none; }\n  .nznd__spec-row:nth-child(even) { background: #fafafa; }\n  .nznd__spec-row dt { padding: 12px 15px; font-size: 13.5px; font-weight: 500; color: #60646c; border-right: 1px solid #e7e7e7; text-align: left; }\n  .nznd__spec-row dd { padding: 12px 15px; font-size: 13.5px; font-weight: 700; color: #101114; text-align: left; }\n\n  \/* ── Wiring layout ── *\/\n  .nznd__wiring { display: grid; grid-template-columns: 200px 1fr; gap: 28px; margin-bottom: 22px; align-items: start; }\n\n  \/* ── Module drawing box ── *\/\n  .nznd__tobox {\n    background: #f9fafb; border: 1px solid #e7e7e7; border-radius: 12px;\n    padding: 18px 12px 12px; display: flex; flex-direction: column; align-items: center;\n  }\n  .nznd__tobox-lbl { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #60646c; margin-bottom: 10px; text-align: center; }\n  .nznd__tosvg { width: 100%; max-width: 160px; }\n  .nznd__tobox-sub { font-size: 10.5px; font-weight: 600; color: #60646c; margin-top: 8px; text-align: center; }\n  .nznd__tobox-sub span { color: #ff7a2f; }\n\n  \/* ── Step cards ── *\/\n  .nznd__steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }\n  .nznd__step { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; background: #f9fafb; border: 1px solid #e7e7e7; border-radius: 10px; padding: 13px; }\n  .nznd__step-n { width: 34px; height: 34px; border-radius: 8px; background: #fff5ef; border: 1px solid rgba(255,122,47,.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; color: #ff7a2f; flex-shrink: 0; }\n  .nznd__step strong { display: block; font-size: 13.5px; font-weight: 700; color: #101114; margin-bottom: 3px; text-align: left; }\n  .nznd__step p { font-size: 12.5px; line-height: 1.55; color: #60646c; margin: 0; text-align: left; }\n  .nznd__step code { font-size: 12px; font-family: monospace; background: #fff; border: 1px solid #e7e7e7; border-radius: 4px; padding: 1px 5px; color: #101114; }\n\n  \/* ── Use case grid ── *\/\n  .nznd__uses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin-bottom: 22px; }\n  .nznd__use { background: #f9fafb; border: 1px solid #e7e7e7; border-left: 3px solid #ff7a2f; border-radius: 0 9px 9px 0; padding: 14px; transition: background .15s, box-shadow .15s; }\n  .nznd__use:hover { background: #fff5ef; box-shadow: 0 2px 8px rgba(255,122,47,.1); }\n  .nznd__use strong { display: block; font-size: 13.5px; font-weight: 700; color: #101114; margin-bottom: 4px; text-align: left; }\n  .nznd__use p { font-size: 12.5px; line-height: 1.5; color: #60646c; margin: 0; text-align: left; }\n\n  \/* ── FAQ accordion ── *\/\n  .nznd__faq { display: grid; gap: 8px; }\n  .nznd__faq-item { border: 1px solid #e7e7e7; border-radius: 10px; overflow: hidden; background: #fff; }\n  .nznd__faq-q {\n    width: 100%; background: #f9fafb; border: none;\n    padding: 14px 17px;\n    display: flex; align-items: center; justify-content: space-between; gap: 10px;\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    font-size: 13.5px; font-weight: 700; color: #101114;\n    cursor: pointer; text-align: left; transition: background .15s, color .15s;\n  }\n  .nznd__faq-q:hover { background: #fff5ef; }\n  .nznd__faq-item.is-open .nznd__faq-q { background: #fff5ef; color: #ff7a2f; }\n  .nznd__faq-icon {\n    width: 20px; height: 20px; flex-shrink: 0;\n    border-radius: 50%; background: #e7e7e7;\n    display: flex; align-items: center; justify-content: center;\n    transition: background .15s, transform .25s cubic-bezier(.34,1.56,.64,1);\n  }\n  .nznd__faq-q:hover .nznd__faq-icon { background: #ffe0cc; }\n  .nznd__faq-item.is-open .nznd__faq-icon { background: #ff7a2f; transform: rotate(45deg); }\n  .nznd__faq-icon svg { width: 10px; height: 10px; stroke: #60646c; }\n  .nznd__faq-item.is-open .nznd__faq-icon svg { stroke: #fff; }\n  .nznd__faq-a {\n    display: block;\n    max-height: 0;\n    overflow: hidden;\n    padding: 0 17px;\n    font-size: 13.5px; line-height: 1.65; color: #60646c;\n    border-top: 1px solid transparent;\n    text-align: left;\n    transition: max-height .32s cubic-bezier(.4,0,.2,1), padding .24s ease, border-color .24s ease;\n  }\n  .nznd__faq-item.is-open .nznd__faq-a { max-height: 260px; padding: 14px 17px; border-top-color: #e7e7e7; }\n\n  \/* ── Responsive ── *\/\n  @media (max-width: 750px) {\n    .nznd__card  { padding: 22px 16px; min-height: 0; }\n    .nznd__stats { grid-template-columns: repeat(2, 1fr); }\n    .nznd__wiring { grid-template-columns: 1fr; }\n    .nznd__tobox { flex-direction: row; gap: 16px; align-items: center; padding: 14px; }\n    .nznd__tobox-lbl { display: none; }\n    .nznd__tosvg { max-width: 90px; }\n    .nznd__tobox-sub { margin-top: 0; text-align: left; }\n    .nznd__uses { grid-template-columns: 1fr 1fr; }\n    .nznd__spec-row { grid-template-columns: 1fr; }\n    .nznd__spec-row dt { border-right: none; border-bottom: 1px solid #e7e7e7; padding-bottom: 5px; }\n    .nznd__spec-row dd { padding-top: 5px; }\n    .nznd__tab { padding: 11px 12px; font-size: 12.5px; }\n  }\n  @media (max-width: 480px) {\n    .nznd__uses { grid-template-columns: 1fr; }\n    .nznd__tab  { padding: 10px 9px; font-size: 11.5px; }\n  }\n  @media (prefers-reduced-motion: reduce) {\n    .nznd__panel { animation: none !important; }\n    .nznd__faq-a { transition: none !important; }\n    .nznd__faq-icon { transition: background .15s !important; }\n    .nznd * { transition-duration: .01ms !important; }\n  }\n\u003c\/style\u003e\n\n\u003carticle class=\"nznd\" itemscope itemtype=\"https:\/\/schema.org\/Product\"\u003e\n  \u003cmeta itemprop=\"name\" content=\"HC-SR04 Ultrasonic Distance Sensor Module\"\u003e\n  \u003cmeta itemprop=\"sku\" content=\"HCSR04\"\u003e\n  \u003cmeta itemprop=\"brand\" content=\"NZN Electronics\"\u003e\n\n  \u003cnav class=\"nznd__tabs\" role=\"tablist\" aria-label=\"Product sections\"\u003e\n    \u003cbutton class=\"nznd__tab is-active\" type=\"button\" data-tab=\"overview\" role=\"tab\" aria-selected=\"true\"\u003eOverview\u003c\/button\u003e\n    \u003cbutton class=\"nznd__tab\" type=\"button\" data-tab=\"specs\" role=\"tab\" aria-selected=\"false\"\u003eSpecifications\u003c\/button\u003e\n    \u003cbutton class=\"nznd__tab\" type=\"button\" data-tab=\"wiring\" role=\"tab\" aria-selected=\"false\"\u003eWiring Guide\u003c\/button\u003e\n    \u003cbutton class=\"nznd__tab\" type=\"button\" data-tab=\"uses\" role=\"tab\" aria-selected=\"false\"\u003eCommon Uses\u003c\/button\u003e\n    \u003cbutton class=\"nznd__tab\" type=\"button\" data-tab=\"faq\" role=\"tab\" aria-selected=\"false\"\u003eFAQs\u003c\/button\u003e\n  \u003c\/nav\u003e\n\n  \u003cdiv class=\"nznd__card\"\u003e\n\n    \u003c!-- ══════════════ OVERVIEW ══════════════ --\u003e\n    \u003csection class=\"nznd__panel is-active\" data-panel=\"overview\" role=\"tabpanel\"\u003e\n\n      \u003cdiv class=\"nznd__strip\"\u003e\n        \u003ch2 itemprop=\"name\"\u003eHC-SR04 — Ultrasonic Distance Sensor Module\u003c\/h2\u003e\n        \u003cp itemprop=\"description\"\u003eA popular 40 kHz ultrasonic ranging module capable of measuring distances from 2 cm to 450 cm with up to 3 mm precision. Sends a timed echo pulse and lets your microcontroller calculate distance using the speed of sound. Works directly with Arduino, ESP32, and Raspberry Pi GPIO pins with no extra components required.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nznd__stats\" role=\"list\" aria-label=\"Key specifications\"\u003e\n        \u003cdiv class=\"nznd__stat\" role=\"listitem\"\u003e\n          \u003cspan class=\"nznd__stat-val\"\u003e2–450cm\u003c\/span\u003e\n          \u003cspan class=\"nznd__stat-lbl\"\u003eDetection Range\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"nznd__stat\" role=\"listitem\"\u003e\n          \u003cspan class=\"nznd__stat-val\"\u003e3mm\u003c\/span\u003e\n          \u003cspan class=\"nznd__stat-lbl\"\u003ePrecision\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"nznd__stat\" role=\"listitem\"\u003e\n          \u003cspan class=\"nznd__stat-val\"\u003e40 kHz\u003c\/span\u003e\n          \u003cspan class=\"nznd__stat-lbl\"\u003eUltrasonic Freq.\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"nznd__stat\" role=\"listitem\"\u003e\n          \u003cspan class=\"nznd__stat-val\"\u003eDC 5V\u003c\/span\u003e\n          \u003cspan class=\"nznd__stat-lbl\"\u003eSupply Voltage\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cul class=\"nznd__pills\" aria-label=\"Key features\"\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot\"\u003e\u003c\/span\u003e2 cm Blind-Zone Minimum\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot\"\u003e\u003c\/span\u003e450 cm Maximum Range\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot\"\u003e\u003c\/span\u003e±15° Sensing Angle\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot nznd__dot--blue\"\u003e\u003c\/span\u003eArduino Compatible\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot nznd__dot--blue\"\u003e\u003c\/span\u003eESP32 Compatible\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot nznd__dot--blue\"\u003e\u003c\/span\u003eRaspberry Pi Compatible\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot\"\u003e\u003c\/span\u003eOnly 2 Signal Pins\u003c\/li\u003e\n        \u003cli class=\"nznd__pill\"\u003e\n\u003cspan class=\"nznd__dot\"\u003e\u003c\/span\u003e7.5g Lightweight\u003c\/li\u003e\n      \u003c\/ul\u003e\n\n      \u003cdiv class=\"nznd__callout nznd__callout--orange\" role=\"note\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#ff7a2f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\n        \u003cdiv\u003e\n          \u003cstrong\u003e5V logic — use a voltage divider on the ECHO pin for 3.3V boards\u003c\/strong\u003e\n          \u003cp\u003eThe HC-SR04 TRIG and ECHO pins operate at 5V logic. The TRIG pin is fine driven from 3.3V GPIO, but the ECHO pin outputs 5V which can damage ESP32 or Raspberry Pi inputs. Use a simple two-resistor voltage divider (1kΩ and 2kΩ) to drop ECHO to 3.3V before connecting to a 3.3V board.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/section\u003e\n\n    \u003c!-- ══════════════ SPECIFICATIONS ══════════════ --\u003e\n    \u003csection class=\"nznd__panel\" data-panel=\"specs\" role=\"tabpanel\"\u003e\n\n      \u003cp class=\"nznd__eyebrow\"\u003eElectrical \u0026amp; Physical Specifications\u003c\/p\u003e\n      \u003cp class=\"nznd__body\"\u003eFull specifications for the HC-SR04 ultrasonic distance sensor module. All values at DC 5V supply unless stated.\u003c\/p\u003e\n\n      \u003cdl class=\"nznd__specs\" itemprop=\"additionalProperty\"\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eModel Number\u003c\/dt\u003e\n\u003cdd\u003eHC-SR04 (HCSR04)\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eWorking Voltage\u003c\/dt\u003e\n\u003cdd\u003eDC 5V\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eQuiescent Current\u003c\/dt\u003e\n\u003cdd\u003eLess than 2 mA\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eLevel Output (High)\u003c\/dt\u003e\n\u003cdd\u003e5V\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eLevel Output (Low)\u003c\/dt\u003e\n\u003cdd\u003e0V\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eDetection Range\u003c\/dt\u003e\n\u003cdd\u003e2 cm – 450 cm\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003ePrecision\u003c\/dt\u003e\n\u003cdd\u003eUp to 3 mm (0.3 cm)\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eSensing Angle\u003c\/dt\u003e\n\u003cdd\u003eNot more than 15°\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eUltrasonic Frequency\u003c\/dt\u003e\n\u003cdd\u003e40 kHz\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eTrigger Input Signal\u003c\/dt\u003e\n\u003cdd\u003e10 µs TTL pulse minimum\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eDistance Formula\u003c\/dt\u003e\n\u003cdd\u003eDistance = (Echo high time × 340 m\/s) ÷ 2\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003ePins\u003c\/dt\u003e\n\u003cdd\u003eVCC, TRIG, ECHO, GND\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eWeight\u003c\/dt\u003e\n\u003cdd\u003e7.5 g\u003c\/dd\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__spec-row\"\u003e\n\u003cdt\u003eMCU Compatibility\u003c\/dt\u003e\n\u003cdd\u003eArduino, ESP32 (with divider on ECHO), Raspberry Pi\u003c\/dd\u003e\n\u003c\/div\u003e\n      \u003c\/dl\u003e\n\n      \u003cdiv class=\"nznd__callout nznd__callout--blue\" role=\"note\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#4a9af7\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\n        \u003cdiv\u003e\n          \u003cstrong\u003eHow distance is calculated\u003c\/strong\u003e\n          \u003cp\u003eAfter the 10 µs trigger pulse, the module fires eight 40 kHz bursts and raises ECHO HIGH for the duration the sound takes to travel to the target and back. Divide the echo time in microseconds by 58 to get centimetres, or by 148 for inches.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/section\u003e\n\n    \u003c!-- ══════════════ WIRING GUIDE ══════════════ --\u003e\n    \u003csection class=\"nznd__panel\" data-panel=\"wiring\" role=\"tabpanel\"\u003e\n\n      \u003cp class=\"nznd__eyebrow\"\u003ePinout \u0026amp; Wiring Instructions\u003c\/p\u003e\n      \u003cp class=\"nznd__body\"\u003eThe HC-SR04 has four pins in a single row: \u003cstrong\u003eVCC, TRIG, ECHO, GND\u003c\/strong\u003e — left to right when the two transducer cylinders face you.\u003c\/p\u003e\n\n      \u003cdiv class=\"nznd__wiring\"\u003e\n\n        \u003c!-- Module pin diagram --\u003e\n        \u003cdiv class=\"nznd__tobox\" aria-label=\"HC-SR04 pin diagram\"\u003e\n          \u003cp class=\"nznd__tobox-lbl\"\u003eHC-SR04 Pinout\u003c\/p\u003e\n\n          \u003csvg class=\"nznd__tosvg\" viewbox=\"0 0 160 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"HC-SR04 module front view showing VCC, TRIG, ECHO and GND pins\"\u003e\n            \u003cdefs\u003e\n              \u003clineargradient id=\"sr04-board\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"\u003e\n                \u003cstop offset=\"0%\" stop-color=\"#1f6b3a\"\u003e\u003c\/stop\u003e\n                \u003cstop offset=\"100%\" stop-color=\"#144d2b\"\u003e\u003c\/stop\u003e\n              \u003c\/lineargradient\u003e\n              \u003clineargradient id=\"sr04-pin\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\"\u003e\n                \u003cstop offset=\"0%\" stop-color=\"#888\"\u003e\u003c\/stop\u003e\n                \u003cstop offset=\"45%\" stop-color=\"#d0d0d0\"\u003e\u003c\/stop\u003e\n                \u003cstop offset=\"100%\" stop-color=\"#999\"\u003e\u003c\/stop\u003e\n              \u003c\/lineargradient\u003e\n            \u003c\/defs\u003e\n\n            \u003c!-- PCB body --\u003e\n            \u003crect x=\"10\" y=\"10\" width=\"140\" height=\"130\" rx=\"6\" fill=\"url(#sr04-board)\" stroke=\"#0d3d20\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n\n            \u003c!-- Left transducer (Tx) --\u003e\n            \u003cellipse cx=\"45\" cy=\"65\" rx=\"26\" ry=\"26\" fill=\"#111\" stroke=\"#333\" stroke-width=\"1.5\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"45\" cy=\"65\" rx=\"19\" ry=\"19\" fill=\"#1a1a1a\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"45\" cy=\"65\" rx=\"4\" ry=\"4\" fill=\"#444\"\u003e\u003c\/ellipse\u003e\n            \u003ctext x=\"45\" y=\"103\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"7\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eTX\u003c\/text\u003e\n\n            \u003c!-- Right transducer (Rx) --\u003e\n            \u003cellipse cx=\"115\" cy=\"65\" rx=\"26\" ry=\"26\" fill=\"#111\" stroke=\"#333\" stroke-width=\"1.5\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"115\" cy=\"65\" rx=\"19\" ry=\"19\" fill=\"#1a1a1a\"\u003e\u003c\/ellipse\u003e\n            \u003cellipse cx=\"115\" cy=\"65\" rx=\"4\" ry=\"4\" fill=\"#444\"\u003e\u003c\/ellipse\u003e\n            \u003ctext x=\"115\" y=\"103\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"7\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eRX\u003c\/text\u003e\n\n            \u003c!-- Pin labels on PCB --\u003e\n            \u003ctext x=\"22\" y=\"122\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"6.5\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eVCC\u003c\/text\u003e\n            \u003ctext x=\"57\" y=\"122\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"6.5\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eTRIG\u003c\/text\u003e\n            \u003ctext x=\"96\" y=\"122\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"6.5\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eECHO\u003c\/text\u003e\n            \u003ctext x=\"134\" y=\"122\" text-anchor=\"middle\" fill=\"#5dd68a\" font-size=\"6.5\" font-family=\"'Inter',sans-serif\" font-weight=\"700\"\u003eGND\u003c\/text\u003e\n\n            \u003c!-- Pin headers --\u003e\n            \u003crect x=\"16\" y=\"128\" width=\"12\" height=\"8\" rx=\"2\" fill=\"#c8a415\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"51\" y=\"128\" width=\"12\" height=\"8\" rx=\"2\" fill=\"#c8a415\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"90\" y=\"128\" width=\"12\" height=\"8\" rx=\"2\" fill=\"#c8a415\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"128\" y=\"128\" width=\"12\" height=\"8\" rx=\"2\" fill=\"#c8a415\"\u003e\u003c\/rect\u003e\n\n            \u003c!-- Pin legs --\u003e\n            \u003crect x=\"20\" y=\"136\" width=\"4\" height=\"50\" fill=\"url(#sr04-pin)\" rx=\"1\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"55\" y=\"136\" width=\"4\" height=\"50\" fill=\"url(#sr04-pin)\" rx=\"1\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"94\" y=\"136\" width=\"4\" height=\"50\" fill=\"url(#sr04-pin)\" rx=\"1\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"132\" y=\"136\" width=\"4\" height=\"50\" fill=\"url(#sr04-pin)\" rx=\"1\"\u003e\u003c\/rect\u003e\n\n            \u003c!-- Pin circles --\u003e\n            \u003ccircle cx=\"22\" cy=\"197\" r=\"9\" fill=\"#ff7a2f\"\u003e\u003c\/circle\u003e\n            \u003ccircle cx=\"57\" cy=\"197\" r=\"9\" fill=\"#ff7a2f\"\u003e\u003c\/circle\u003e\n            \u003ccircle cx=\"96\" cy=\"197\" r=\"9\" fill=\"#ff7a2f\"\u003e\u003c\/circle\u003e\n            \u003ccircle cx=\"134\" cy=\"197\" r=\"9\" fill=\"#ff7a2f\"\u003e\u003c\/circle\u003e\n\n            \u003ctext x=\"22\" y=\"201\" text-anchor=\"middle\" fill=\"#fff\" font-size=\"7.5\" font-family=\"'Inter',sans-serif\" font-weight=\"800\"\u003eV\u003c\/text\u003e\n            \u003ctext x=\"57\" y=\"201\" text-anchor=\"middle\" fill=\"#fff\" font-size=\"7.5\" font-family=\"'Inter',sans-serif\" font-weight=\"800\"\u003eT\u003c\/text\u003e\n            \u003ctext x=\"96\" y=\"201\" text-anchor=\"middle\" fill=\"#fff\" font-size=\"7.5\" font-family=\"'Inter',sans-serif\" font-weight=\"800\"\u003eE\u003c\/text\u003e\n            \u003ctext x=\"134\" y=\"201\" text-anchor=\"middle\" fill=\"#fff\" font-size=\"7.5\" font-family=\"'Inter',sans-serif\" font-weight=\"800\"\u003eG\u003c\/text\u003e\n          \u003c\/svg\u003e\n\n          \u003cp class=\"nznd__tobox-sub\"\u003e\n            \u003cspan\u003eV\u003c\/span\u003eCC  ·  \u003cspan\u003eT\u003c\/span\u003eRIG  ·  \u003cspan\u003eE\u003c\/span\u003eCHO  ·  \u003cspan\u003eG\u003c\/span\u003eND\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003c!-- Wiring steps --\u003e\n        \u003col class=\"nznd__steps\" aria-label=\"Arduino wiring steps\"\u003e\n          \u003cli class=\"nznd__step\"\u003e\n            \u003cdiv class=\"nznd__step-n\"\u003e1\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eVCC → 5V\u003c\/strong\u003e\u003cp\u003eConnect VCC to the 5V pin of your Arduino. Do not use 3.3V — the module requires 5V to operate.\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/li\u003e\n          \u003cli class=\"nznd__step\"\u003e\n            \u003cdiv class=\"nznd__step-n\"\u003e2\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eGND → GND\u003c\/strong\u003e\u003cp\u003eCommon ground with your Arduino or ESP32.\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/li\u003e\n          \u003cli class=\"nznd__step\"\u003e\n            \u003cdiv class=\"nznd__step-n\"\u003e3\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eTRIG → Digital Pin (e.g. D9)\u003c\/strong\u003e\u003cp\u003eSend a 10 µs HIGH pulse to trigger a reading. 3.3V GPIO is sufficient to trigger the module.\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/li\u003e\n          \u003cli class=\"nznd__step\"\u003e\n            \u003cdiv class=\"nznd__step-n\"\u003e4\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eECHO → Digital Pin (e.g. D10)\u003c\/strong\u003e\u003cp\u003eReads the pulse duration. \u003cstrong\u003eArduino:\u003c\/strong\u003e connect directly. \u003cstrong\u003eESP32 \/ RPi:\u003c\/strong\u003e use a 1kΩ + 2kΩ voltage divider to drop 5V to 3.3V before connecting.\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/li\u003e\n          \u003cli class=\"nznd__step\"\u003e\n            \u003cdiv class=\"nznd__step-n\"\u003e5\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eCalculate distance\u003c\/strong\u003e\u003cp\u003eUse \u003ccode\u003epulseIn(ECHO, HIGH)\u003c\/code\u003e to measure µs. Divide by 58 for cm or 148 for inches. The NewPing library simplifies this.\u003c\/p\u003e\n\u003c\/div\u003e\n          \u003c\/li\u003e\n        \u003c\/ol\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nznd__callout nznd__callout--orange\" role=\"note\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#ff7a2f\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpolygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\u003e\u003c\/polygon\u003e\u003cline x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\n        \u003cdiv\u003e\n          \u003cstrong\u003eMinimum 60 ms between readings\u003c\/strong\u003e\n          \u003cp\u003eWait at least 60 ms between trigger pulses to allow ultrasonic echoes to clear. Triggering too quickly causes false short-range readings from the previous cycle's echo.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/section\u003e\n\n    \u003c!-- ══════════════ COMMON USES ══════════════ --\u003e\n    \u003csection class=\"nznd__panel\" data-panel=\"uses\" role=\"tabpanel\"\u003e\n\n      \u003cp class=\"nznd__eyebrow\"\u003eApplications \u0026amp; Use Cases\u003c\/p\u003e\n      \u003cp class=\"nznd__body\"\u003eThe HC-SR04 is one of the most widely used sensors in hobbyist and maker projects. Its low cost, simple two-wire interface, and 4.5 m range make it ideal for anything from obstacle avoidance to liquid level monitoring.\u003c\/p\u003e\n\n      \u003cdiv class=\"nznd__uses\"\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003eObstacle Avoidance Robots\u003c\/strong\u003e\u003cp\u003eMount on a servo for sweeping detection or fixed for forward collision avoidance on Arduino and ESP32 rovers.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003eParking Sensor\u003c\/strong\u003e\u003cp\u003eDIY garage or vehicle parking aid — beeps when an object is detected within a set distance.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003eLiquid Level Monitoring\u003c\/strong\u003e\u003cp\u003eMeasure water tank, sump, or container fill levels without contact with the liquid.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003ePeople \/ Object Counter\u003c\/strong\u003e\u003cp\u003eDetect when someone passes through a doorway or breaks the beam between two points.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003eHeight Measurement\u003c\/strong\u003e\u003cp\u003eNon-contact height gauging for conveyor systems, sorting machines, or interactive installations.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nznd__use\"\u003e\n\u003cstrong\u003eHome Automation\u003c\/strong\u003e\u003cp\u003eTrigger lights, fans, or alarms based on detected presence or proximity with ESPHome or Home Assistant.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nznd__callout nznd__callout--blue\" role=\"note\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#4a9af7\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\n        \u003cdiv\u003e\n          \u003cstrong\u003eESPHome integration\u003c\/strong\u003e\n          \u003cp\u003eThe HC-SR04 is natively supported in ESPHome with the \u003ccode\u003eultrasonic\u003c\/code\u003e sensor platform. Define TRIG and ECHO pins and get distance readings directly in Home Assistant with no extra code.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/section\u003e\n\n    \u003c!-- ══════════════ FAQs ══════════════ --\u003e\n    \u003csection class=\"nznd__panel\" data-panel=\"faq\" role=\"tabpanel\"\u003e\n\n      \u003cp class=\"nznd__eyebrow\"\u003eFrequently Asked Questions\u003c\/p\u003e\n\n      \u003cdl class=\"nznd__faq\"\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            Will the HC-SR04 work with an ESP32 or Raspberry Pi at 3.3V?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eThe module itself needs 5V on VCC to function. The TRIG pin can be driven from 3.3V GPIO. The ECHO pin outputs 5V however, which can damage 3.3V microcontrollers — use a 1kΩ\/2kΩ voltage divider or a logic level shifter on the ECHO line before connecting to an ESP32 or Raspberry Pi.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            What is the minimum detectable distance?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eThe blind zone starts at 2 cm. Objects closer than 2 cm may not be reliably detected. For very close-range sensing consider an IR proximity sensor instead.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            How do I calculate distance from the ECHO pulse?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eMeasure the ECHO HIGH duration in microseconds using \u003ccode\u003epulseIn(echoPin, HIGH)\u003c\/code\u003e. Divide by 58 to get centimetres, or by 148 for inches. This accounts for the round-trip travel of the sound pulse. The NewPing Arduino library handles all of this automatically.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            How often can I take readings?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eWait at least 60 ms between trigger pulses. Faster polling risks detecting the echo from the previous cycle, giving spuriously short readings. In practice 100 ms (10 readings per second) is a safe rate for most applications.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            Does it work with soft surfaces like foam or fabric?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eSoft or angled surfaces absorb or scatter ultrasonic energy, reducing effective range and accuracy. For best results aim at flat, hard surfaces such as walls, water, or solid objects. Angled surfaces should be within roughly 15° of perpendicular to the sensor face.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nznd__faq-item\"\u003e\n          \u003cdt\u003e\u003cbutton class=\"nznd__faq-q\" type=\"button\" aria-expanded=\"false\"\u003e\n            Is there an Arduino library I can use?\n            \u003cspan class=\"nznd__faq-icon\"\u003e\u003csvg viewbox=\"0 0 12 12\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cline x1=\"6\" y1=\"2\" x2=\"6\" y2=\"10\"\u003e\u003c\/line\u003e\u003cline x1=\"2\" y1=\"6\" x2=\"10\" y2=\"6\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003c\/button\u003e\u003c\/dt\u003e\n          \u003cdd class=\"nznd__faq-a\"\u003eYes — the \u003cstrong\u003eNewPing\u003c\/strong\u003e library by Tim Eckel is the most popular choice. Install it via the Arduino Library Manager. It simplifies triggering, echo timing, and includes median filtering to reduce noise. For ESPHome users, the built-in \u003ccode\u003eultrasonic\u003c\/code\u003e platform works out of the box.\u003c\/dd\u003e\n        \u003c\/div\u003e\n\n      \u003c\/dl\u003e\n\n    \u003c\/section\u003e\n\n  \u003c\/div\u003e\n\u003c\/article\u003e\n\n\u003cscript\u003e\n(function () {\n  'use strict';\n  var w = document.currentScript\n    ? (document.currentScript.closest('.nznd') || document.querySelector('.nznd'))\n    : document.querySelector('.nznd');\n  if (!w) return;\n\n  w.addEventListener('click', function (e) {\n\n    \/* Tab switch *\/\n    var tab = e.target.closest('.nznd__tab');\n    if (tab) {\n      var target = tab.getAttribute('data-tab');\n      w.querySelectorAll('.nznd__tab').forEach(function (t) { t.classList.remove('is-active'); t.setAttribute('aria-selected','false'); });\n      w.querySelectorAll('.nznd__panel').forEach(function (p) { p.classList.remove('is-active'); });\n      tab.classList.add('is-active');\n      tab.setAttribute('aria-selected','true');\n      var panel = w.querySelector('[data-panel=\"' + target + '\"]');\n      if (panel) panel.classList.add('is-active');\n      return;\n    }\n\n    \/* FAQ accordion *\/\n    var btn = e.target.closest('.nznd__faq-q');\n    if (btn) {\n      var item = btn.closest('.nznd__faq-item');\n      var open = item.classList.contains('is-open');\n      w.querySelectorAll('.nznd__faq-item').forEach(function (x) {\n        x.classList.remove('is-open');\n        x.querySelector('.nznd__faq-q').setAttribute('aria-expanded','false');\n      });\n      if (!open) { item.classList.add('is-open'); btn.setAttribute('aria-expanded','true'); }\n    }\n\n  });\n}());\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42861955154016,"sku":"HCSR04-1PK","price":2.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/HC-SR-04-IR-Sensor-ProductHero.png?v=1781062116"},{"product_id":"oh137-unipolar-hall-effect-switch","title":"OH137 Unipolar Hall Effect Switch Sensor – TO-92S, 4.5V–24V","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}\n.nznpd strong{color:var(--ink)}\n.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:72ch}\n.nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px}\n.nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45}\n.nznpd__checks li::before{content:\"\\2713\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center}\n.nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px}\n.nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)}\n.nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}\n.nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px}\n.nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}\n.nznpd__steps strong{display:block;font-size:14px}\n.nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45}\n.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}\n.nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}\n.nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}\n.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}\n.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}\n.nznpd__spec:nth-child(odd){background:var(--soft)}\n.nznpd__spec span{color:var(--mut)}\n.nznpd__spec strong{font-weight:700}\n.nznpd__dsbar{display:flex;align-items:center;gap:11px;padding:14px 16px;border-top:2px solid var(--line);background:#FFF8F1;text-decoration:none;color:var(--od);font-weight:700;font-size:14px;line-height:1.3;transition:background .16s ease}\n.nznpd__dsbar:hover{background:#FCEBD8}\n.nznpd__dsbar svg{flex:0 0 auto;color:var(--o)}\n.nznpd__dsmeta{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}\n.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}\n.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}\n.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}\n.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}\n.nznpd__faqs{display:grid;gap:10px}\n.nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease}\n.nznpd__faq[open]{border-color:#FCE0C6}\n.nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}\n.nznpd__faq summary::-webkit-details-marker{display:none}\n.nznpd__faq summary::after{content:\"\\203A\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease}\n.nznpd__faq[open] summary::after{transform:rotate(-90deg)}\n.nznpd__faq p{padding:0 0 16px;font-size:14px}\n.nznpd__faq[open] p{animation:nznpdReveal .24s ease}\n@keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}\n@media(prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}.nznpd__dsbar{transition:none}}\n@media(max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\n.nzndemo{background:#fff;border:2px solid var(--line);border-radius:16px;padding:24px;margin-top:0}\n.nzndemo__layout{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}\n.nzndemo__canvas{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;justify-content:center;align-items:center;min-height:220px}\n.nzndemo__controls{display:flex;flex-direction:column;gap:12px}\n.nzndemo__label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}\n.nzndemo__btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.nzndemo__btn{padding:9px 6px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:12px;font-weight:700;color:var(--ink);transition:all .15s;line-height:1.3;text-align:center}\n.nzndemo__btn:hover{border-color:#FCE0C6}\n.nzndemo__btn.s-active{background:#EBF4FF;border-color:#5B9BD5;color:#1a4a7a}\n.nzndemo__btn.n-active{background:#F7F8FA;border-color:#aaa;color:#5b6573}\n.nzndemo__btn-full{grid-column:span 2}\n.nzndemo__btn.r-active{background:var(--soft);border-color:#aaa}\n.nzndemo__status{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}\n.nzndemo__row{display:flex;justify-content:space-between;align-items:center;font-size:13px}\n.nzndemo__rowkey{color:var(--mut)}\n.nzndemo__rowval{font-weight:700;color:var(--ink)}\n.nzndemo__badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;background:var(--line);color:var(--mut)}\n.nzndemo__badge.bon{background:#E1F5EE;color:#085041}\n.nzndemo__badge.boff{background:#F7F8FA;color:#5b6573}\n.nzndemo__info{background:#FFF9F5;border:1px solid #FCE0C6;border-radius:10px;padding:12px 14px}\n.nzndemo__info-title{font-size:12px;font-weight:800;color:var(--od);margin-bottom:4px}\n.nzndemo__info-body{font-size:12px;color:var(--mut);line-height:1.55}\n.nzndemo__concepts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}\n.nzndemo__concept{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}\n.nzndemo__concept-title{font-size:11px;font-weight:800;color:var(--ink);margin-bottom:3px}\n.nzndemo__concept-body{font-size:11px;color:var(--mut);line-height:1.5}\n.nzndemo__vs{margin-top:12px;padding:11px 14px;border-left:3px solid var(--line);background:var(--soft);border-radius:0 8px 8px 0;font-size:12px;color:var(--mut);line-height:1.55}\n.nzndemo__vs strong{color:var(--ink)}\n@media(max-width:749px){.nzndemo__layout{grid-template-columns:1fr}.nzndemo__concepts{grid-template-columns:1fr 1fr}}\n\u003c\/style\u003e\n\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe OH137 is a unipolar Hall effect switch IC fabricated with reverse voltage protection, a Schmitt trigger, and an open-collector output stage — converting a south-pole magnetic field into a clean digital LOW signal. Unlike a bipolar latch, it resets automatically when the magnet is removed, making it ideal for speed sensing, position detection, and contactless switching across a wide 4.5V–24V supply range.\u003c\/p\u003e\n\u003cbr\u003e\n\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eUnipolar switch — south pole activates, output pulls LOW; no magnet = HIGH\u003c\/li\u003e\n\u003cli\u003e4.5V–24V supply range, 25 mA open-collector output\u003c\/li\u003e\n\u003cli\u003eFast switching — 0.12 µs rise, 0.14 µs fall time (typical)\u003c\/li\u003e\n\u003cli\u003eSchmitt trigger hysteresis — clean switching, no chatter\u003c\/li\u003e\n\u003cli\u003eReverse polarity protection built in\u003c\/li\u003e\n\u003cli\u003e−40°C to +85°C operating temperature range\u003c\/li\u003e\n\u003cli\u003eTO-92S through-hole package, direct logic interface\u003c\/li\u003e\n\u003cli\u003eCompatible with Arduino, ESP32, Raspberry Pi and more\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eOH137 (OH137A0)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSwitch Type\u003c\/span\u003e\u003cstrong\u003eUnipolar — south pole only, non-latching\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply Voltage (VCC)\u003c\/span\u003e\u003cstrong\u003e4.5V – 24V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Current (IO)\u003c\/span\u003e\u003cstrong\u003e25 mA max\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Type\u003c\/span\u003e\u003cstrong\u003eOpen-collector, active LOW\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating Temperature (TA)\u003c\/span\u003e\u003cstrong\u003e−40°C to +85°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eStorage Temperature (TS)\u003c\/span\u003e\u003cstrong\u003e−55°C to +150°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Rise Time\u003c\/span\u003e\u003cstrong\u003e0.12 µs typical\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Fall Time\u003c\/span\u003e\u003cstrong\u003e0.14 µs typical\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHysteresis\u003c\/span\u003e\u003cstrong\u003e6–8 mT Schmitt trigger\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePackage\u003c\/span\u003e\u003cstrong\u003eTO-92S, 3-pin through-hole\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMCU Compatibility\u003c\/span\u003e\u003cstrong\u003eArduino, ESP32, Raspberry Pi, STM32, PIC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/OH137-Datasheet-v3.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the full OH137 technical datasheet (PDF)\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the pack\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eOH137 Unipolar Hall Effect Switch ICs\u003c\/strong\u003e\n\u003cp\u003eQuantity as selected. TO-92S through-hole package, ready to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSpeed and RPM sensing on motors, wheels and shafts\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePosition and end-stop detection in CNC and robotics\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eDoor, lid and panel open\/close sensing\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eFlow measurement with impeller-based sensors\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eTraffic and gear tooth detection\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eNon-contact switching in home appliances and power tools\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eOrient the sensor\u003c\/strong\u003e\u003cp\u003eHold the TO-92S package with the flat printed face toward you, legs pointing down. Pins 1, 2, 3 run left to right. The flat face is the active sensing surface.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eWire power and ground\u003c\/strong\u003e\u003cp\u003eConnect Pin 1 (VCC) to your supply — 5V for Arduino, or 5V Vin on ESP32 (minimum 4.5V required). Connect Pin 2 to GND.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the output with a pull-up\u003c\/strong\u003e\u003cp\u003eConnect Pin 3 (OUT) to a digital GPIO. Use \u003ccode\u003epinMode(pin, INPUT_PULLUP)\u003c\/code\u003e in Arduino, or add a 10 kΩ resistor from Pin 3 to VCC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eRead the output\u003c\/strong\u003e\u003cp\u003e\u003ccode\u003edigitalRead()\u003c\/code\u003e returns LOW when a south-pole magnet faces the flat surface, HIGH otherwise. Use \u003ccode\u003eattachInterrupt()\u003c\/code\u003e for RPM counting without polling.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eHow it works\u003c\/h3\u003e\n\u003cdiv class=\"nzndemo\"\u003e\n  \u003cdiv class=\"nzndemo__layout\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"nzndemo__canvas\"\u003e\n        \u003csvg id=\"oh137-svg\" viewbox=\"0 0 400 210\" width=\"100%\" style=\"max-width:420px;overflow:visible\"\u003e\n          \u003cg id=\"oh137-mag\" transform=\"translate(8,62)\"\u003e\n            \u003crect id=\"oh137-left-rect\" x=\"0\" y=\"0\" width=\"56\" height=\"72\" rx=\"5\" fill=\"#DDEEFF\" stroke=\"#5B9BD5\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003ctext id=\"oh137-left-lbl\" x=\"28\" y=\"43\" text-anchor=\"middle\" font-size=\"20\" font-weight=\"700\" fill=\"#1a4a7a\"\u003eS\u003c\/text\u003e\n            \u003crect id=\"oh137-right-rect\" x=\"56\" y=\"0\" width=\"56\" height=\"72\" rx=\"5\" fill=\"#FDDDD9\" stroke=\"#E05C45\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003ctext id=\"oh137-right-lbl\" x=\"84\" y=\"43\" text-anchor=\"middle\" font-size=\"20\" font-weight=\"700\" fill=\"#7a1a0a\"\u003eN\u003c\/text\u003e\n            \u003ctext x=\"56\" y=\"90\" text-anchor=\"middle\" font-size=\"11\" fill=\"#5b6573\"\u003emagnet\u003c\/text\u003e\n          \u003c\/g\u003e\n          \u003cg id=\"oh137-lines\" opacity=\"0\"\u003e\n            \u003cline x1=\"130\" y1=\"84\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"130\" y1=\"98\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"130\" y1=\"112\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cpolygon id=\"oh137-arr1\" points=\"182,93 192,98 182,103\" fill=\"#5B9BD5\"\u003e\u003c\/polygon\u003e\n          \u003c\/g\u003e\n          \u003cg transform=\"translate(192,46)\"\u003e\n            \u003crect x=\"0\" y=\"0\" width=\"96\" height=\"90\" rx=\"5\" fill=\"#fff\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"0\" y=\"0\" width=\"6\" height=\"90\" rx=\"2\" fill=\"#F0F4F8\"\u003e\u003c\/rect\u003e\n            \u003ctext x=\"51\" y=\"30\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#0F172A\"\u003eOH137\u003c\/text\u003e\n            \u003ctext x=\"51\" y=\"50\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eflat face\u003c\/text\u003e\n            \u003cline x1=\"20\" y1=\"90\" x2=\"20\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"48\" y1=\"90\" x2=\"48\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"76\" y1=\"90\" x2=\"76\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003ctext x=\"20\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eVCC\u003c\/text\u003e\n            \u003ctext x=\"48\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eGND\u003c\/text\u003e\n            \u003ctext x=\"76\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eOUT\u003c\/text\u003e\n          \u003c\/g\u003e\n          \u003cline x1=\"288\" y1=\"98\" x2=\"322\" y2=\"98\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/line\u003e\n          \u003ccircle id=\"oh137-led\" cx=\"338\" cy=\"98\" r=\"14\" fill=\"#F7F8FA\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/circle\u003e\n          \u003ctext id=\"oh137-ledlbl\" x=\"338\" y=\"79\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#5b6573\"\u003eHIGH\u003c\/text\u003e\n          \u003ctext x=\"338\" y=\"122\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eLED\u003c\/text\u003e\n        \u003c\/svg\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__controls\"\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"nzndemo__label\"\u003eApply magnetic field\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__btns\"\u003e\n          \u003cbutton class=\"nzndemo__btn\" id=\"oh137-bs\" onclick=\"oh137Apply('south')\"\u003eSouth pole\u003cbr\u003efacing sensor\u003c\/button\u003e\n          \u003cbutton class=\"nzndemo__btn\" id=\"oh137-bn\" onclick=\"oh137Apply('north')\"\u003eNorth pole\u003cbr\u003efacing sensor\u003c\/button\u003e\n          \u003cbutton class=\"nzndemo__btn nzndemo__btn-full\" id=\"oh137-br\" onclick=\"oh137Apply('none')\"\u003eRemove magnet\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__status\"\u003e\n        \u003cdiv class=\"nzndemo__label\" style=\"margin-bottom:2px\"\u003eOutput state\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003ePin 3 (OUT)\u003c\/span\u003e\u003cspan class=\"nzndemo__rowval\" id=\"oh137-pin\"\u003eHIGH\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003eState\u003c\/span\u003e\u003cspan class=\"nzndemo__badge\" id=\"oh137-badge\"\u003eoff\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003eMagnet\u003c\/span\u003e\u003cspan class=\"nzndemo__rowval\" id=\"oh137-mag-lbl\"\u003enone\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__info\"\u003e\n        \u003cdiv class=\"nzndemo__info-title\" id=\"oh137-ititle\"\u003eNo magnet present\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__info-body\" id=\"oh137-ibody\"\u003eOutput is HIGH via pull-up. The OH137 resets automatically — no magnet means no activation.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nzndemo__concepts\"\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eSouth pole only\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003eOnly a south-facing pole activates the sensor. North pole has zero effect on the output.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eNon-latching\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003eOutput goes LOW while the magnet is present and returns HIGH immediately when removed. No memory.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eSchmitt trigger\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003e6–8 mT hysteresis prevents chatter at the switching threshold for clean, bounce-free transitions.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nzndemo__vs\"\u003e\n\u003cstrong\u003eUnipolar switch vs bipolar latch:\u003c\/strong\u003e The OH137 only responds to the south pole and resets when the magnet is removed — simple and predictable. The US1881 bipolar latch responds to both poles and holds state after removal. Use the OH137 for RPM counting and proximity sensing; use the US1881 for BLDC commutation and toggle switching.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\n\u003csummary\u003eDoes the north pole trigger the OH137?\u003c\/summary\u003e\n\u003cp\u003eNo — the OH137 is unipolar and only responds to a south magnetic pole facing the flat face. The north pole has no effect on the output. If you need both poles to trigger switching, see the US1881 bipolar Hall latch.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDoes the output hold state when the magnet is removed?\u003c\/summary\u003e\n\u003cp\u003eNo. The OH137 is non-latching — the output goes LOW while the south pole is present and returns HIGH as soon as the magnet is removed. There is no memory. For latching behaviour, use the US1881.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDo I need a pull-up resistor?\u003c\/summary\u003e\n\u003cp\u003eYes. The output is open-collector, so it needs a pull-up to read HIGH. Use \u003ccode\u003eINPUT_PULLUP\u003c\/code\u003e in Arduino to enable the internal pull-up, or wire a 10 kΩ resistor from Pin 3 to VCC.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eCan I use it with a 3.3V ESP32?\u003c\/summary\u003e\n\u003cp\u003eYes, with care. Power Pin 1 (VCC) from the ESP32's 5V Vin rail — the sensor needs a minimum of 4.5V on VCC. The open-collector output on Pin 3 is safe for a 3.3V GPIO input provided the pull-up resistor goes to 3.3V, not 5V.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eWhat's the maximum switching speed?\u003c\/summary\u003e\n\u003cp\u003eThe OH137 has a 0.12 µs typical rise time and 0.14 µs typical fall time, giving it a wide operating frequency suitable for high-speed RPM counting and gear tooth detection. Use \u003ccode\u003eattachInterrupt()\u003c\/code\u003e rather than polling for best accuracy at high speeds.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eSouth pole only:\u003c\/strong\u003e The OH137 is unipolar — the north pole has no effect on the output. A pull-up resistor is always required; the open-collector output will float without one. For switching with both poles, see the US1881 bipolar Hall latch.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nvar state={pole:'none'};\nvar msgs={\n  south:{t:'South pole applied — output LOW',b:'The south pole exceeds the \u003cstrong\u003eoperate point\u003c\/strong\u003e. Output pulls LOW via the open-collector transistor — the LED turns on. Remove the magnet and it immediately resets HIGH.'},\n  north:{t:'North pole — no effect',b:'The OH137 is \u003cstrong\u003eunipolar\u003c\/strong\u003e — the north pole has no effect on the output. Pin 3 remains HIGH. Only the south pole can activate this sensor.'},\n  none:{t:'No magnet present',b:'Output is \u003cstrong\u003eHIGH via pull-up\u003c\/strong\u003e. The OH137 resets automatically — no magnet means no activation. This is the default idle state.'}\n};\nfunction oh137Apply(pole){state.pole=pole;render();}\nwindow.oh137Apply=oh137Apply;\nfunction setMagnetPoles(pole){\n  var lr=document.getElementById('oh137-left-rect');\n  var ll=document.getElementById('oh137-left-lbl');\n  var rr=document.getElementById('oh137-right-rect');\n  var rl=document.getElementById('oh137-right-lbl');\n  if(!lr) return;\n  if(pole==='south'){\n    lr.setAttribute('fill','#FDDDD9');lr.setAttribute('stroke','#E05C45');\n    ll.textContent='N';ll.setAttribute('fill','#7a1a0a');\n    rr.setAttribute('fill','#DDEEFF');rr.setAttribute('stroke','#5B9BD5');\n    rl.textContent='S';rl.setAttribute('fill','#1a4a7a');\n  } else if(pole==='north'){\n    lr.setAttribute('fill','#DDEEFF');lr.setAttribute('stroke','#5B9BD5');\n    ll.textContent='S';ll.setAttribute('fill','#1a4a7a');\n    rr.setAttribute('fill','#FDDDD9');rr.setAttribute('stroke','#E05C45');\n    rl.textContent='N';rl.setAttribute('fill','#7a1a0a');\n  } else {\n    lr.setAttribute('fill','#DDEEFF');lr.setAttribute('stroke','#5B9BD5');\n    ll.textContent='S';ll.setAttribute('fill','#1a4a7a');\n    rr.setAttribute('fill','#FDDDD9');rr.setAttribute('stroke','#E05C45');\n    rl.textContent='N';rl.setAttribute('fill','#7a1a0a');\n  }\n}\nfunction render(){\n  var p=state.pole;\n  var isOn=p==='south';\n  var bs=document.getElementById('oh137-bs');\n  var bn=document.getElementById('oh137-bn');\n  var br=document.getElementById('oh137-br');\n  if(bs) bs.className='nzndemo__btn'+(p==='south'?' s-active':'');\n  if(bn) bn.className='nzndemo__btn'+(p==='north'?' n-active':'');\n  if(br) br.className='nzndemo__btn nzndemo__btn-full'+(p==='none'?' r-active':'');\n  var led=document.getElementById('oh137-led');\n  var ledlbl=document.getElementById('oh137-ledlbl');\n  var pin=document.getElementById('oh137-pin');\n  var badge=document.getElementById('oh137-badge');\n  var maglbl=document.getElementById('oh137-mag-lbl');\n  var ititle=document.getElementById('oh137-ititle');\n  var ibody=document.getElementById('oh137-ibody');\n  var lines=document.getElementById('oh137-lines');\n  var magG=document.getElementById('oh137-mag');\n  if(led){led.setAttribute('fill',isOn?'#22C55E':'#F7F8FA');led.setAttribute('stroke',isOn?'#16A34A':'#CBD5E0');}\n  if(ledlbl){ledlbl.textContent=isOn?'LOW':'HIGH';ledlbl.setAttribute('fill',isOn?'#15803D':'#5b6573');}\n  if(pin) pin.textContent=isOn?'LOW (0V)':'HIGH';\n  if(badge){badge.className='nzndemo__badge'+(isOn?' bon':' boff');badge.textContent=isOn?'on':'off';}\n  if(maglbl) maglbl.textContent=p==='south'?'south pole':p==='north'?'north pole':'removed';\n  if(magG) magG.setAttribute('transform',(p==='south'||p==='north')?'translate(52,62)':'translate(8,62)');\n  setMagnetPoles(p);\n  if(lines){\n    if(p==='south'||p==='north'){\n      lines.style.opacity='1';\n      var lns=lines.querySelectorAll('line');\n      var arr=document.getElementById('oh137-arr1');\n      var col=p==='south'?'#5B9BD5':'#CBD5E0';\n      lns.forEach(function(ln){ln.setAttribute('stroke',col);});\n      if(arr) arr.setAttribute('fill',col);\n      if(p==='north'){\n        lns[0].setAttribute('x1','182');lns[0].setAttribute('x2','130');\n        lns[1].setAttribute('x1','182');lns[1].setAttribute('x2','130');\n        lns[2].setAttribute('x1','182');lns[2].setAttribute('x2','130');\n        if(arr) arr.setAttribute('points','130,93 120,98 130,103');\n      } else {\n        lns[0].setAttribute('x1','130');lns[0].setAttribute('x2','182');\n        lns[1].setAttribute('x1','130');lns[1].setAttribute('x2','182');\n        lns[2].setAttribute('x1','130');lns[2].setAttribute('x2','182');\n        if(arr) arr.setAttribute('points','182,93 192,98 182,103');\n      }\n    } else {\n      lines.style.opacity='0';\n    }\n  }\n  if(ititle) ititle.textContent=msgs[p].t;\n  if(ibody) ibody.innerHTML=msgs[p].b;\n}\nrender();\n})();\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42868142211168,"sku":"OH137-HALL-TO92S","price":0.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/oh137-hall-effect-switch-hero-pure-white-protected-2026-08-31.png?v=1788093687"},{"product_id":"us1881-bipolar-hall-effect-latch","title":"US1881 Bipolar Hall Effect Latch Sensor – TO-92, 3.5V–24V","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}\n.nznpd strong{color:var(--ink)}\n.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:72ch}\n.nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px}\n.nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45}\n.nznpd__checks li::before{content:\"\\2713\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center}\n.nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px}\n.nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)}\n.nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}\n.nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px}\n.nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}\n.nznpd__steps strong{display:block;font-size:14px}\n.nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45}\n.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}\n.nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}\n.nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}\n.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}\n.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}\n.nznpd__spec:nth-child(odd){background:var(--soft)}\n.nznpd__spec span{color:var(--mut)}\n.nznpd__spec strong{font-weight:700}\n.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}\n.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}\n.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}\n.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}\n.nznpd__faqs{display:grid;gap:10px}\n.nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease}\n.nznpd__faq[open]{border-color:#FCE0C6}\n.nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}\n.nznpd__faq summary::-webkit-details-marker{display:none}\n.nznpd__faq summary::after{content:\"\\203A\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease}\n.nznpd__faq[open] summary::after{transform:rotate(-90deg)}\n.nznpd__faq p{padding:0 0 16px;font-size:14px}\n.nznpd__faq[open] p{animation:nznpdReveal .24s ease}\n@keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}\n@media(prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}}\n@media(max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\n.nzndemo{background:#fff;border:2px solid var(--line);border-radius:16px;padding:24px;margin-top:0}\n.nzndemo__layout{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}\n.nzndemo__canvas{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;justify-content:center;align-items:center;min-height:220px}\n.nzndemo__controls{display:flex;flex-direction:column;gap:12px}\n.nzndemo__label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}\n.nzndemo__btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.nzndemo__btn{padding:9px 6px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:12px;font-weight:700;color:var(--ink);transition:all .15s;line-height:1.3;text-align:center}\n.nzndemo__btn:hover{border-color:#FCE0C6}\n.nzndemo__btn.s-active{background:#EBF4FF;border-color:#5B9BD5;color:#1a4a7a}\n.nzndemo__btn.n-active{background:#FEF0EE;border-color:#E05C45;color:#7a1a0a}\n.nzndemo__btn-full{grid-column:span 2}\n.nzndemo__btn.r-active{background:var(--soft);border-color:#aaa}\n.nzndemo__status{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}\n.nzndemo__row{display:flex;justify-content:space-between;align-items:center;font-size:13px}\n.nzndemo__rowkey{color:var(--mut)}\n.nzndemo__rowval{font-weight:700;color:var(--ink)}\n.nzndemo__badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;background:var(--line);color:var(--mut)}\n.nzndemo__badge.bon{background:#E1F5EE;color:#085041}\n.nzndemo__badge.boff{background:#FEF0EE;color:#7a1a0a}\n.nzndemo__info{background:#FFF9F5;border:1px solid #FCE0C6;border-radius:10px;padding:12px 14px}\n.nzndemo__info-title{font-size:12px;font-weight:800;color:var(--od);margin-bottom:4px}\n.nzndemo__info-body{font-size:12px;color:var(--mut);line-height:1.55}\n.nzndemo__concepts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}\n.nzndemo__concept{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px}\n.nzndemo__concept-title{font-size:11px;font-weight:800;color:var(--ink);margin-bottom:3px}\n.nzndemo__concept-body{font-size:11px;color:var(--mut);line-height:1.5}\n.nzndemo__vs{margin-top:12px;padding:11px 14px;border-left:3px solid var(--line);background:var(--soft);border-radius:0 8px 8px 0;font-size:12px;color:var(--mut);line-height:1.55}\n.nzndemo__vs strong{color:var(--ink)}\n@media(max-width:749px){.nzndemo__layout{grid-template-columns:1fr}.nzndemo__concepts{grid-template-columns:1fr 1fr}}\n\u003c\/style\u003e\n\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe US1881 is a bipolar Hall effect latch IC fabricated from mixed-signal CMOS technology with advanced chopper stabilisation for accurate, stable magnetic switch points. Unlike a simple unipolar switch, it latches its output and holds state when the magnet is removed — making it the go-to choice for BLDC motor commutation, angular position sensing, and non-contact toggle switching across a wide 3.5V–24V supply range.\u003c\/p\u003e\n\u003cbr\u003e\n\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eBipolar latch — south pole sets output ON (BOP), north pole sets output OFF (BRP)\u003c\/li\u003e\n\u003cli\u003e3.5V–24V supply range, up to 50 mA output current\u003c\/li\u003e\n\u003cli\u003eChopper-stabilised amplifier — stable thresholds across temperature\u003c\/li\u003e\n\u003cli\u003eMixed-signal CMOS — optimised for 5V and 12V BLDC motor commutation\u003c\/li\u003e\n\u003cli\u003eSOT-23 package (output polarity reversed vs UA package)\u003c\/li\u003e\n\u003cli\u003e−40°C to +150°C operating temperature range\u003c\/li\u003e\n\u003cli\u003e100 mW max power dissipation, RoHS compliant\u003c\/li\u003e\n\u003cli\u003eCompatible with Arduino, ESP32, Raspberry Pi and more\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eUS1881\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTechnology\u003c\/span\u003e\u003cstrong\u003eMixed-Signal CMOS, Chopper-Stabilised\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply Voltage (Vdd)\u003c\/span\u003e\u003cstrong\u003e3.5V – 24V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply Current (IDD)\u003c\/span\u003e\u003cstrong\u003e50 mA max\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Voltage (VOUT)\u003c\/span\u003e\u003cstrong\u003e3.5V – 24V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Current (IOUT)\u003c\/span\u003e\u003cstrong\u003e50 mA max\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePower Dissipation (PD)\u003c\/span\u003e\u003cstrong\u003e100 mW max\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating Temperature (Ta)\u003c\/span\u003e\u003cstrong\u003e−40°C to +150°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput Type\u003c\/span\u003e\u003cstrong\u003eOpen-drain latch (BOP on, BRP off)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSwitch Behaviour\u003c\/span\u003e\u003cstrong\u003eBipolar latch — south pole = ON, north pole = OFF, no magnet = holds state\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePackage\u003c\/span\u003e\u003cstrong\u003eSOT-23 \/ TO-92 (UA) — 3-pin, RoHS compliant\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMCU Compatibility\u003c\/span\u003e\u003cstrong\u003eArduino, ESP32, Raspberry Pi, STM32, PIC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat’s in the pack\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eUS1881 Bipolar Hall Effect Latch ICs\u003c\/strong\u003e\n\u003cp\u003eQuantity as selected. TO-92 flat (UA) package, through-hole, ready to use.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eBLDC motor commutation in drones, e-bikes and power tools\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSolid state and non-contact toggle switching\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSpeed and RPM sensing with multi-pole ring magnets\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAngular and linear position sensing\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eCurrent sensing applications\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eProximity and presence detection in harsh environments\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eOrient the sensor\u003c\/strong\u003e\u003cp\u003eHold the TO-92 (UA) package with the flat branded face toward you, legs pointing down. Pins 1, 2, 3 run left to right. The flat face is the active sensing surface.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eWire power and ground\u003c\/strong\u003e\u003cp\u003eConnect Pin 1 (VDD) to your supply — 5V for Arduino, or use 5V Vin on ESP32 for adequate headroom above the 3.5V minimum. Connect Pin 2 to GND. Add a 100 nF bypass capacitor between VDD and GND close to the sensor.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the output with a pull-up\u003c\/strong\u003e\u003cp\u003eConnect Pin 3 (OUT) to a digital GPIO. Use \u003ccode\u003epinMode(pin, INPUT_PULLUP)\u003c\/code\u003e in Arduino, or add a 10 kΩ resistor from Pin 3 to VDD.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTest the latch behaviour\u003c\/strong\u003e\u003cp\u003ePower-up state is undefined. Sweep a known magnetic pole past the sensor at startup to establish a known state. South pole facing the marked face = output ON. North pole = output OFF. Remove the magnet and the output holds its last state.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eHow it works\u003c\/h3\u003e\n\u003cdiv class=\"nzndemo\"\u003e\n  \u003cdiv class=\"nzndemo__layout\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"nzndemo__canvas\"\u003e\n        \u003csvg id=\"nznd-svg\" viewbox=\"0 0 400 210\" width=\"100%\" style=\"max-width:420px;overflow:visible\"\u003e\n          \u003cg id=\"nznd-mag\" transform=\"translate(8,62)\"\u003e\n            \u003crect id=\"nznd-left-rect\" x=\"0\" y=\"0\" width=\"56\" height=\"72\" rx=\"5\" fill=\"#DDEEFF\" stroke=\"#5B9BD5\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003ctext id=\"nznd-left-lbl\" x=\"28\" y=\"43\" text-anchor=\"middle\" font-size=\"20\" font-weight=\"700\" fill=\"#1a4a7a\"\u003eS\u003c\/text\u003e\n            \u003crect id=\"nznd-right-rect\" x=\"56\" y=\"0\" width=\"56\" height=\"72\" rx=\"5\" fill=\"#FDDDD9\" stroke=\"#E05C45\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003ctext id=\"nznd-right-lbl\" x=\"84\" y=\"43\" text-anchor=\"middle\" font-size=\"20\" font-weight=\"700\" fill=\"#7a1a0a\"\u003eN\u003c\/text\u003e\n            \u003ctext x=\"56\" y=\"90\" text-anchor=\"middle\" font-size=\"11\" fill=\"#5b6573\"\u003emagnet\u003c\/text\u003e\n          \u003c\/g\u003e\n          \u003cg id=\"nznd-lines\" opacity=\"0\"\u003e\n            \u003cline x1=\"130\" y1=\"84\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"130\" y1=\"98\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"130\" y1=\"112\" x2=\"182\" y2=\"98\" stroke=\"#5B9BD5\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\u003e\u003c\/line\u003e\n            \u003cpolygon id=\"nznd-arr1\" points=\"182,93 192,98 182,103\" fill=\"#5B9BD5\"\u003e\u003c\/polygon\u003e\n          \u003c\/g\u003e\n          \u003cg id=\"nznd-sensor\" transform=\"translate(192,46)\"\u003e\n            \u003crect x=\"0\" y=\"0\" width=\"96\" height=\"90\" rx=\"5\" fill=\"#fff\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/rect\u003e\n            \u003crect x=\"0\" y=\"0\" width=\"6\" height=\"90\" rx=\"2\" fill=\"#F0F4F8\"\u003e\u003c\/rect\u003e\n            \u003ctext x=\"51\" y=\"30\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#0F172A\"\u003eUS1881\u003c\/text\u003e\n            \u003ctext x=\"51\" y=\"50\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eflat face\u003c\/text\u003e\n            \u003cline x1=\"20\" y1=\"90\" x2=\"20\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"48\" y1=\"90\" x2=\"48\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003cline x1=\"76\" y1=\"90\" x2=\"76\" y2=\"118\" stroke=\"#0F172A\" stroke-width=\"2\"\u003e\u003c\/line\u003e\n            \u003ctext x=\"20\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eVDD\u003c\/text\u003e\n            \u003ctext x=\"48\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eGND\u003c\/text\u003e\n            \u003ctext x=\"76\" y=\"134\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eOUT\u003c\/text\u003e\n          \u003c\/g\u003e\n          \u003cline x1=\"288\" y1=\"98\" x2=\"322\" y2=\"98\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/line\u003e\n          \u003ccircle id=\"nznd-led\" cx=\"338\" cy=\"98\" r=\"14\" fill=\"#F7F8FA\" stroke=\"#CBD5E0\" stroke-width=\"1.5\"\u003e\u003c\/circle\u003e\n          \u003ctext id=\"nznd-ledlbl\" x=\"338\" y=\"79\" text-anchor=\"middle\" font-size=\"11\" font-weight=\"700\" fill=\"#5b6573\"\u003e?\u003c\/text\u003e\n          \u003ctext x=\"338\" y=\"122\" text-anchor=\"middle\" font-size=\"10\" fill=\"#5b6573\"\u003eLED\u003c\/text\u003e\n        \u003c\/svg\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__controls\"\u003e\n      \u003cdiv\u003e\n        \u003cdiv class=\"nzndemo__label\"\u003eApply magnetic field\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__btns\"\u003e\n          \u003cbutton class=\"nzndemo__btn\" id=\"nznd-bs\" onclick=\"nzndApply('south')\"\u003eSouth pole\u003cbr\u003efacing sensor\u003c\/button\u003e\n          \u003cbutton class=\"nzndemo__btn\" id=\"nznd-bn\" onclick=\"nzndApply('north')\"\u003eNorth pole\u003cbr\u003efacing sensor\u003c\/button\u003e\n          \u003cbutton class=\"nzndemo__btn nzndemo__btn-full\" id=\"nznd-br\" onclick=\"nzndApply('none')\"\u003eRemove magnet\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__status\"\u003e\n        \u003cdiv class=\"nzndemo__label\" style=\"margin-bottom:2px\"\u003eOutput state\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003ePin 3 (OUT)\u003c\/span\u003e\u003cspan class=\"nzndemo__rowval\" id=\"nznd-pin\"\u003e—\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003eLatch\u003c\/span\u003e\u003cspan class=\"nzndemo__badge\" id=\"nznd-badge\"\u003eundefined\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__row\"\u003e\n\u003cspan class=\"nzndemo__rowkey\"\u003eMagnet\u003c\/span\u003e\u003cspan class=\"nzndemo__rowval\" id=\"nznd-mag-lbl\"\u003enone\u003c\/span\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__info\"\u003e\n        \u003cdiv class=\"nzndemo__info-title\" id=\"nznd-ititle\"\u003ePower-up state\u003c\/div\u003e\n        \u003cdiv class=\"nzndemo__info-body\" id=\"nznd-ibody\"\u003eOutput is undefined at power-up. Apply a pole to the flat face to establish a known state.\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nzndemo__concepts\"\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eBOP — operate point\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003eSouth pole exceeds the threshold. Output latches LOW (on). Holds after magnet is removed.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eBRP — release point\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003eNorth pole exceeds the threshold. Output latches HIGH (off). Holds after magnet is removed.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nzndemo__concept\"\u003e\n      \u003cdiv class=\"nzndemo__concept-title\"\u003eMagnetic memory\u003c\/div\u003e\n      \u003cdiv class=\"nzndemo__concept-body\"\u003eNo continuous field needed — the latch retains its state indefinitely until the opposite pole is applied.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nzndemo__vs\"\u003e\n\u003cstrong\u003eBipolar latch vs unipolar switch:\u003c\/strong\u003e A unipolar switch (e.g. OH137) only responds to one pole and resets when the magnet is removed. The US1881 needs both poles — south to turn on, north to turn off — and holds state when the magnet is gone. Ideal for motor commutation and toggle switching.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\n\u003csummary\u003eWhat is the difference between bipolar latch and unipolar switch?\u003c\/summary\u003e\n\u003cp\u003eA unipolar switch only responds to one pole (usually south). A bipolar latch responds to both — south sets the output ON, north sets it OFF, and removing the magnet holds the last state. This makes the US1881 ideal for motor commutation and toggle applications where you need definite on\/off control from alternating poles.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDoes the output hold state when the magnet is removed?\u003c\/summary\u003e\n\u003cp\u003eYes. This is the key feature of a latch. Once set by a magnetic field, the US1881 holds its output until the opposite pole is applied. Power-up state is undefined, so your firmware should detect pole position at startup to establish a known state.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eIs the SOT-23 package the same polarity as the TO-92 (UA)?\u003c\/summary\u003e\n\u003cp\u003eNo — the SOT-23 output polarity is reversed relative to the UA (TO-92 flat) package. Always check your package marking. For the UA package: south pole facing the flat face = output ON (low). For SOT-23 it is the opposite.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eWhat supply voltage does it need?\u003c\/summary\u003e\n\u003cp\u003eThe US1881 operates from 3.5V to 24V, making it compatible with 5V Arduino systems and 12V motor driver circuits alike. The output voltage mirrors the supply range (3.5V–24V), and maximum output current is 50 mA.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDo I need a pull-up resistor on the output?\u003c\/summary\u003e\n\u003cp\u003eYes. The output is open-drain, so it needs a pull-up to VDD to read a HIGH state. A 10 kΩ resistor works well, or use \u003ccode\u003eINPUT_PULLUP\u003c\/code\u003e mode on an Arduino GPIO to use the internal pull-up.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003ePackage note:\u003c\/strong\u003e The US1881 UA (TO-92 flat) and SOT-23 packages have reversed output polarity — always verify your package type before wiring. For a simpler south-pole-only switch, see the OH137 unipolar Hall switch.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nvar state={pole:'none',latch:'unknown'};\nvar msgs={\n  south:{t:'South pole applied — BOP triggered',b:'South pole field exceeds the \u003cstrong\u003eBurst Operate Point (BOP)\u003c\/strong\u003e. Output latches LOW — the transistor pulls Pin 3 to GND, turning the LED on. It stays on when the magnet is removed.'},\n  north:{t:'North pole applied — BRP triggered',b:'North pole field exceeds the \u003cstrong\u003eBurst Release Point (BRP)\u003c\/strong\u003e. Output latches HIGH — the transistor turns off, Pin 3 floats high via the pull-up. It stays off when the magnet is removed.'},\n  none_on:{t:'Magnet removed — latched ON',b:'No magnetic field present but the US1881 \u003cstrong\u003eholds its last state\u003c\/strong\u003e. Output stays LOW. The latch retains state until the north pole is applied.'},\n  none_off:{t:'Magnet removed — latched OFF',b:'No magnetic field present but the US1881 \u003cstrong\u003eholds its last state\u003c\/strong\u003e. Output stays HIGH. The latch retains state until the south pole is applied.'},\n  none_unknown:{t:'Power-up state',b:'Output is \u003cstrong\u003eundefined at power-up\u003c\/strong\u003e. Apply a magnetic pole to the flat face of the sensor to establish a known state.'}\n};\nfunction nzndApply(pole){\n  state.pole=pole;\n  if(pole==='south') state.latch='on';\n  else if(pole==='north') state.latch='off';\n  render();\n}\nwindow.nzndApply=nzndApply;\nfunction setMagnetPoles(facingPole){\n  var leftRect=document.getElementById('nznd-left-rect');\n  var leftLbl=document.getElementById('nznd-left-lbl');\n  var rightRect=document.getElementById('nznd-right-rect');\n  var rightLbl=document.getElementById('nznd-right-lbl');\n  if(!leftRect) return;\n  if(facingPole==='south'){\n    leftRect.setAttribute('fill','#FDDDD9');leftRect.setAttribute('stroke','#E05C45');\n    leftLbl.textContent='N';leftLbl.setAttribute('fill','#7a1a0a');\n    rightRect.setAttribute('fill','#DDEEFF');rightRect.setAttribute('stroke','#5B9BD5');\n    rightLbl.textContent='S';rightLbl.setAttribute('fill','#1a4a7a');\n  } else if(facingPole==='north'){\n    leftRect.setAttribute('fill','#DDEEFF');leftRect.setAttribute('stroke','#5B9BD5');\n    leftLbl.textContent='S';leftLbl.setAttribute('fill','#1a4a7a');\n    rightRect.setAttribute('fill','#FDDDD9');rightRect.setAttribute('stroke','#E05C45');\n    rightLbl.textContent='N';rightLbl.setAttribute('fill','#7a1a0a');\n  } else {\n    leftRect.setAttribute('fill','#DDEEFF');leftRect.setAttribute('stroke','#5B9BD5');\n    leftLbl.textContent='S';leftLbl.setAttribute('fill','#1a4a7a');\n    rightRect.setAttribute('fill','#FDDDD9');rightRect.setAttribute('stroke','#E05C45');\n    rightLbl.textContent='N';rightLbl.setAttribute('fill','#7a1a0a');\n  }\n}\nfunction render(){\n  var p=state.pole,l=state.latch;\n  var bs=document.getElementById('nznd-bs');\n  var bn=document.getElementById('nznd-bn');\n  var br=document.getElementById('nznd-br');\n  if(bs){bs.className='nzndemo__btn'+(p==='south'?' s-active':'');}\n  if(bn){bn.className='nzndemo__btn'+(p==='north'?' n-active':'');}\n  if(br){br.className='nzndemo__btn nzndemo__btn-full'+(p==='none'?' r-active':'');}\n  var led=document.getElementById('nznd-led');\n  var ledlbl=document.getElementById('nznd-ledlbl');\n  var pin=document.getElementById('nznd-pin');\n  var badge=document.getElementById('nznd-badge');\n  var maglbl=document.getElementById('nznd-mag-lbl');\n  var ititle=document.getElementById('nznd-ititle');\n  var ibody=document.getElementById('nznd-ibody');\n  var lines=document.getElementById('nznd-lines');\n  var magG=document.getElementById('nznd-mag');\n  var isOn=l==='on';\n  var isUnk=l==='unknown';\n  if(led){\n    led.setAttribute('fill',isOn?'#22C55E':'#F7F8FA');\n    led.setAttribute('stroke',isOn?'#16A34A':'#CBD5E0');\n  }\n  if(ledlbl){\n    ledlbl.textContent=isUnk?'?':(isOn?'ON':'OFF');\n    ledlbl.setAttribute('fill',isOn?'#15803D':isUnk?'#5b6573':'#E05C45');\n  }\n  if(pin) pin.textContent=isUnk?'—':(isOn?'LOW (0V)':'HIGH');\n  if(badge){\n    badge.className='nzndemo__badge'+(isUnk?'':isOn?' bon':' boff');\n    badge.textContent=isUnk?'undefined':(isOn?'latched ON':'latched OFF');\n  }\n  if(maglbl) maglbl.textContent=p==='south'?'south pole':p==='north'?'north pole':'removed';\n  if(magG){\n    magG.setAttribute('transform',(p==='south'||p==='north')?'translate(52,62)':'translate(8,62)');\n  }\n  setMagnetPoles(p);\n  if(lines){\n    if(p==='south'||p==='north'){\n      lines.style.opacity='1';\n      var lns=lines.querySelectorAll('line');\n      var arr=document.getElementById('nznd-arr1');\n      var col=p==='south'?'#5B9BD5':'#E05C45';\n      lns.forEach(function(ln){ln.setAttribute('stroke',col);});\n      if(arr) arr.setAttribute('fill',col);\n      if(p==='north'){\n        lns[0].setAttribute('x1','182');lns[0].setAttribute('x2','130');\n        lns[1].setAttribute('x1','182');lns[1].setAttribute('x2','130');\n        lns[2].setAttribute('x1','182');lns[2].setAttribute('x2','130');\n        if(arr) arr.setAttribute('points','130,93 120,98 130,103');\n      } else {\n        lns[0].setAttribute('x1','130');lns[0].setAttribute('x2','182');\n        lns[1].setAttribute('x1','130');lns[1].setAttribute('x2','182');\n        lns[2].setAttribute('x1','130');lns[2].setAttribute('x2','182');\n        if(arr) arr.setAttribute('points','182,93 192,98 182,103');\n      }\n    } else {\n      lines.style.opacity='0';\n    }\n  }\n  var key=p==='south'?'south':p==='north'?'north':(l==='on'?'none_on':l==='off'?'none_off':'none_unknown');\n  if(ititle) ititle.textContent=msgs[key].t;\n  if(ibody) ibody.innerHTML=msgs[key].b;\n}\nrender();\n})();\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42868153581664,"sku":"US1881-HALL-TO92","price":0.79,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/US1881ProductHero.png?v=1781518273"},{"product_id":"ds1307-tiny-rtc-i2c-real-time-clock-module-at24c32-eeprom-arduino","title":"DS1307 Tiny RTC I2C Real-Time Clock Module – AT24C32 EEPROM (Arduino)","description":"\u003cstyle\u003e.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6} .nznpd,.nznpd *{box-sizing:border-box} .nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65} .nznpd strong{color:var(--ink)} .nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:none} .nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px} .nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45} .nznpd__checks li::before{content:\"\\2713\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center} .nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px} .nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)} .nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px} .nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px} .nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center} .nznpd__steps strong{display:block;font-size:14px} .nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45} .nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)} .nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px} .nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)} .nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden} .nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px} .nznpd__spec:nth-child(odd){background:var(--soft)} .nznpd__spec span{color:var(--mut)} .nznpd__spec strong{font-weight:700} .nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px} .nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center} .nznpd__included strong{display:block;font-size:15px;margin-bottom:3px} .nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px} .nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4} .nznpd__faqs{display:grid;gap:10px} .nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease} .nznpd__faq[open]{border-color:#FCE0C6} .nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px} .nznpd__faq summary::-webkit-details-marker{display:none} .nznpd__faq summary::after{content:\"\\203A\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease} .nznpd__faq[open] summary::after{transform:rotate(-90deg)} .nznpd__faq p{padding:0 0 16px;font-size:14px} .nznpd__faq[open] p{animation:nznpdReveal .24s ease} @keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}} .nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55} @media (prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}} @media (max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\u003c\/style\u003e\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eAdd accurate timekeeping to any project. The \u003cstrong\u003eDS1307 Tiny RTC\u003c\/strong\u003e module keeps real time — seconds through to year, with automatic leap-year handling — over a simple \u003cstrong\u003eI2C\u003c\/strong\u003e connection, and keeps ticking on its backup battery when main power is off. It also packs an onboard \u003cstrong\u003eAT24C32 EEPROM\u003c\/strong\u003e (4 KB) for non-volatile storage, plus a programmable square-wave output. Works with Arduino, ESP32, Raspberry Pi, PIC and most microcontrollers. Backup battery not included.\u003c\/p\u003e\n\u003cbr\u003e\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eDS1307 real-time clock over I2C\u003c\/li\u003e\n\u003cli\u003eOnboard AT24C32 32 Kbit (4 KB) EEPROM\u003c\/li\u003e\n\u003cli\u003eBattery-backed — keeps time when powered off\u003c\/li\u003e\n\u003cli\u003eProgrammable square-wave (SQ) output\u003c\/li\u003e\n\u003cli\u003e32.768 kHz crystal for accurate timekeeping\u003c\/li\u003e\n\u003cli\u003eWorks with Arduino, ESP32, Pi \u0026amp; PIC\u003c\/li\u003e\n\u003cli\u003eFootprint for an optional DS18B20 sensor\u003c\/li\u003e\n\u003cli\u003e5V operation, I2C clock address 0x68\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRTC chip\u003c\/span\u003e\u003cstrong\u003eDS1307 (I2C, address 0x68)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eEEPROM\u003c\/span\u003e\u003cstrong\u003eAT24C32, 32 Kbit \/ 4 KB (I2C, 0x50)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eI2C (SCL, SDA)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating voltage\u003c\/span\u003e\u003cstrong\u003e5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCrystal\u003c\/span\u003e\u003cstrong\u003e32.768 kHz\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBackup battery\u003c\/span\u003e\u003cstrong\u003eLIR2032 rechargeable (not included)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003eProgrammable square wave (SQ)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eExtras\u003c\/span\u003e\u003cstrong\u003eOnboard charge circuit · DS18B20 footprint\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHeader pins\u003c\/span\u003e\u003cstrong\u003eSQ, DS, SCL, SDA, VCC, GND, BAT\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDimensions\u003c\/span\u003e\u003cstrong\u003eapprox. 27 × 28 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eDS1307 Tiny RTC module\u003c\/strong\u003e\u003cp\u003eBackup battery (LIR2032) not included — see the note below on battery type.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eData loggers with timestamps\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eClocks, timers \u0026amp; alarms\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eScheduling lights, relays \u0026amp; automation\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eArduino \/ ESP32 \/ Raspberry Pi projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eStoring settings in the onboard EEPROM\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLearning I2C and RTC basics\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eWire it up\u003c\/strong\u003e\u003cp\u003eVCC→5V, GND→GND, SDA→SDA, SCL→SCL on your board.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eFit a battery\u003c\/strong\u003e\u003cp\u003eInsert a charged LIR2032 (rechargeable) so it keeps time when the power is off.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eAdd a library\u003c\/strong\u003e\u003cp\u003eUse an RTClib (DS1307) library in the Arduino IDE.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the time\u003c\/strong\u003e\u003cp\u003eRun the set-time example once — it'll then keep time on its own.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\u003csummary\u003eIs the battery included?\u003c\/summary\u003e\u003cp\u003eNo. The module takes a rechargeable LIR2032 coin cell (not included). The board has a built-in charging circuit to keep it topped up while powered.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eCan I use a normal CR2032 instead?\u003c\/summary\u003e\u003cp\u003eThe Tiny RTC is designed for a rechargeable LIR2032 and will try to charge whatever is fitted. If you want to use a non-rechargeable CR2032, disable the onboard charging circuit first (remove the charging resistor\/diode near the SQ pin) to avoid overcharging it. For most users a LIR2032 is the easy answer.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eDoes it work at 3.3V?\u003c\/summary\u003e\u003cp\u003eThe I2C lines work fine at 3.3V, but the onboard battery charging needs 5V. Power the module from 5V for normal use.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eWhat is the EEPROM for?\u003c\/summary\u003e\u003cp\u003eThe onboard AT24C32 gives you 4 KB of non-volatile storage (I2C address 0x50) for settings, logs or calibration — completely separate from the clock.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eWhich library should I use?\u003c\/summary\u003e\u003cp\u003eAdafruit RTClib (or similar) with the DS1307 class. Set the time once via the example sketch and it keeps running on the backup battery.\u003c\/p\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e takes a rechargeable LIR2032 (not included) — not a throwaway CR2032 unless you disable the charger. Every order is checked before it ships from our Te Awamutu stock.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42882511143008,"sku":"MOD-DS1307","price":3.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS1307ProductHero.png?v=1781746504"},{"product_id":"ds3231-mini-rtc-module","title":"DS3231 Mini High-Precision RTC Module – I2C, Arduino \u0026 Raspberry Pi","description":"\u003cstyle\u003e.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6} .nznpd,.nznpd *{box-sizing:border-box} .nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65} .nznpd strong{color:var(--ink)} .nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:none} .nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px} .nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45} .nznpd__checks li::before{content:\"\\2713\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center} .nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px} .nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)} .nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px} .nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px} .nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center} .nznpd__steps strong{display:block;font-size:14px} .nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45} .nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)} .nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px} .nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)} .nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden} .nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px} .nznpd__spec:nth-child(odd){background:var(--soft)} .nznpd__spec span{color:var(--mut)} .nznpd__spec strong{font-weight:700} .nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px} .nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center} .nznpd__included strong{display:block;font-size:15px;margin-bottom:3px} .nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px} .nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4} .nznpd__faqs{display:grid;gap:10px} .nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease} .nznpd__faq[open]{border-color:#FCE0C6} .nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px} .nznpd__faq summary::-webkit-details-marker{display:none} .nznpd__faq summary::after{content:\"\\203A\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease} .nznpd__faq[open] summary::after{transform:rotate(-90deg)} .nznpd__faq p{padding:0 0 16px;font-size:14px} .nznpd__faq[open] p{animation:nznpdReveal .24s ease} @keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}} .nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55} @media (prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}} @media (max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\u003c\/style\u003e\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eHigh-precision timekeeping in a tiny footprint. This \u003cstrong\u003emini DS3231\u003c\/strong\u003e module uses a temperature-compensated DS3231 real-time clock and plugs onto a Raspberry Pi I2C header. It also works with Arduino, ESP32 and other I2C controllers. The fitted CR927-format 3 V backup cell keeps time when main power is off.\u003c\/p\u003e\n\u003cbr\u003e\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eDS3231SN RTC, temperature-compensated\u003c\/li\u003e\n\u003cli\u003e±2 ppm from 0 to +40°C; ±3.5 ppm from -40 to +85°C\u003c\/li\u003e\n\u003cli\u003eFar steadier timekeeping than a DS1307\u003c\/li\u003e\n\u003cli\u003eBuilt-in digital temperature sensor (±3°C)\u003c\/li\u003e\n\u003cli\u003eTwo programmable calendar alarms\u003c\/li\u003e\n\u003cli\u003e1 Hz \u0026amp; 32.768 kHz outputs\u003c\/li\u003e\n\u003cli\u003e3.3–5.5V supply, low power\u003c\/li\u003e\n\u003cli\u003eUltra-compact (~2.7 g), plugs onto Raspberry Pi\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRTC chip\u003c\/span\u003e\u003cstrong\u003eDS3231SN (16-pin SO, 300 mil)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTiming accuracy\u003c\/span\u003e\u003cstrong\u003e±2 ppm (0 to +40°C); ±3.5 ppm (-40 to +85°C)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTemperature sensor\u003c\/span\u003e\u003cstrong\u003eDigital, ±3°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCalendar\u003c\/span\u003e\u003cstrong\u003eSec\/min\/hr\/day\/date\/month\/year, leap-year to 2100\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eAlarms\u003c\/span\u003e\u003cstrong\u003e2 programmable calendar alarms\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutputs\u003c\/span\u003e\u003cstrong\u003e1 Hz \u0026amp; 32.768 kHz\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eExtras\u003c\/span\u003e\u003cstrong\u003eReset output, button de-bounce input\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003eI²C, Fast-mode up to 400 kHz (addr 0x68)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating voltage\u003c\/span\u003e\u003cstrong\u003e3.3V – 5.5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating temperature\u003c\/span\u003e\u003cstrong\u003e−40°C to +85°C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBackup battery\u003c\/span\u003e\u003cstrong\u003eFitted CR927-format 3 V cell, 30 mAh nominal\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePinout\u003c\/span\u003e\u003cstrong\u003e+ (VCC), D (SDA), C (SCL), NC, − (GND)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSize \/ weight\u003c\/span\u003e\u003cstrong\u003eApprox. 15 × 13 × 14 mm including connector and cell\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS3231-MINI-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the DS3231 Mini High-Precision RTC Module – I2C, Arduino \u0026amp; Raspberry Pi technical datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003ca id=\"quick-start-guide\" class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS3231-MINI-QuickStart.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the DS3231 Mini High-Precision RTC Module – I2C, Arduino \u0026amp; Raspberry Pi quick start guide PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eQuick Start guide\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eMini DS3231 high-precision RTC module\u003c\/strong\u003e\u003cp\u003eIncludes the fitted CR927-format backup cell shown on the module.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRaspberry Pi timekeeping (no network needed)\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAccurate clocks \u0026amp; alarm projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eData loggers with reliable timestamps\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eScheduling relays, lights \u0026amp; automation\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eCompact builds where space is tight\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eUpgrading a DS1307 where accuracy matters\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect it\u003c\/strong\u003e\u003cp\u003eOn a Pi, push it onto the first GPIO header pins so + D C NC − line up. On any MCU, wire +→3.3–5V, D→SDA, C→SCL, −→GND.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck the fitted cell\u003c\/strong\u003e\u003cp\u003eThe small CR927-format backup cell is already installed. Do not fit a 20 mm coin cell.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eEnable \/ add a library\u003c\/strong\u003e\u003cp\u003eOn Pi, enable I2C and the DS3231 overlay; on Arduino, use RTClib (DS3231).\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the time\u003c\/strong\u003e\u003cp\u003eSet it once — it then keeps accurate time on its own.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cbr\u003e\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\u003csummary\u003eHow accurate is it versus a DS1307?\u003c\/summary\u003e\u003cp\u003eThe DS3231 is temperature compensated and specified to ±2 ppm from 0 to +40°C and ±3.5 ppm from -40 to +85°C. That is much steadier than a typical DS1307 module.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eDoes it only work with Raspberry Pi?\u003c\/summary\u003e\u003cp\u003eNo — it's labelled \"for Pi\" because it plugs neatly onto the Pi's I2C header, but it's a standard I2C device. Wire + D C − to VCC \/ SDA \/ SCL \/ GND and it works with Arduino, ESP32 or any microcontroller (3.3–5.5V).\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eWhat do the pins mean?\u003c\/summary\u003e\u003cp\u003e+ = VCC (3.3–5.5V), D = SDA (data), C = SCL (clock), NC = not connected, − = GND.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eDoes it have onboard EEPROM?\u003c\/summary\u003e\u003cp\u003eNo — this compact version is RTC-only (no AT24C32 EEPROM, unlike the larger ZS-042 board). If you need extra storage, add a separate EEPROM or use your microcontroller's memory.\u003c\/p\u003e\u003c\/details\u003e\u003cdetails class=\"nznpd__faq\"\u003e\u003csummary\u003eIs the battery included?\u003c\/summary\u003e\u003cp\u003eYes. This compact board has a fitted CR927-format 3 V backup cell. It does not use a LIR2032 cell or a 20 mm holder.\u003c\/p\u003e\u003c\/details\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e This compact module is RTC-only with no onboard EEPROM. The NC pin is not connected.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":42882594734176,"sku":"MOD-DS3231","price":5.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS3231SNProductHero.png?v=1781748090"},{"product_id":"ds18b20-temperature-sensor-adapter-module-screw-terminal-1-wire-breakout-with-pull-up-arduino","title":"DS18B20 Temperature Sensor Adapter Module – Screw Terminal 1-Wire Breakout with Pull-Up (Arduino)","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:inherit;line-height:1.6;padding:0 5%;box-sizing:border-box}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}\n.nznpd strong{color:var(--ink)}\n.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6;max-width:72ch}\n.nznpd__checks{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:26px;row-gap:13px}\n.nznpd__checks li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink);line-height:1.45}\n.nznpd__checks li::before{content:\"✓\";flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:999px;background:#FFF3E8;color:var(--o);font-size:12px;font-weight:900;line-height:21px;text-align:center}\n.nznpd__qs{background:linear-gradient(170deg,#FFF9F3,#FFF1E6);border:2px solid #FCE0C6;border-radius:16px;padding:22px}\n.nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)}\n.nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}\n.nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px}\n.nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}\n.nznpd__steps strong{display:block;font-size:14px}\n.nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45}\n.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}\n.nznpd__h{margin:0 0 28px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}\n.nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}\n.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}\n.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}\n.nznpd__spec:nth-child(odd){background:var(--soft)}\n.nznpd__spec span{color:var(--mut)}\n.nznpd__spec strong{font-weight:700}\n.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}\n.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}\n.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}\n.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}\n.nznpd__faqs{display:grid;gap:10px}\n.nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease}\n.nznpd__faq[open]{border-color:#FCE0C6}\n.nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}\n.nznpd__faq summary::-webkit-details-marker{display:none}\n.nznpd__faq summary::after{content:\"›\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease}\n.nznpd__faq[open] summary::after{transform:rotate(-90deg)}\n.nznpd__faq p{padding:0 0 16px;font-size:14px}\n.nznpd__faq[open] p{animation:nznpdReveal .24s ease}\n@keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}\n@media (prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}}\n@media (max-width:749px){.nznpd__checks{grid-template-columns:1fr}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}}\n\u003c\/style\u003e\n\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eA small breakout board that makes wiring a DS18B20 temperature sensor effortless. Connect a DS18B20 probe (or a bare TO-92 sensor) to the 3-way green screw terminal, and the onboard 4.7kΩ pull-up resistor is already fitted — there's nothing extra to add. Three labelled male header pins (VCC, GND, DAT) drop straight onto a breadboard or jumper leads. \u003cstrong\u003ePlease note: the temperature probe\/sensor is not included — this is the adapter board only.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cbr\u003e\n\u003cul class=\"nznpd__checks\"\u003e\n\u003cli\u003eOnboard 4.7kΩ pull-up resistor — nothing else to add\u003c\/li\u003e\n\u003cli\u003e3-way screw terminal for a solid, solder-free probe connection\u003c\/li\u003e\n\u003cli\u003eVCC \/ GND \/ DAT male header pins for breadboards \u0026amp; jumpers\u003c\/li\u003e\n\u003cli\u003eWorks with waterproof DS18B20 probes and bare TO-92 sensors\u003c\/li\u003e\n\u003cli\u003e1-Wire protocol — one GPIO pin, chain multiple sensors\u003c\/li\u003e\n\u003cli\u003e3.0–5.5V supply — Arduino, ESP32 \u0026amp; Raspberry Pi friendly\u003c\/li\u003e\n\u003cli\u003eCompact 23.4 × 20.3mm board, clearly labelled\u003c\/li\u003e\n\u003cli\u003eSwap or replace probes without touching a soldering iron\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard type\u003c\/span\u003e\u003cstrong\u003eDS18B20 1-Wire adapter \/ breakout\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInterface\u003c\/span\u003e\u003cstrong\u003e1-Wire (single data pin)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOnboard pull-up\u003c\/span\u003e\u003cstrong\u003e4.7kΩ (fitted)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eScrew terminal\u003c\/span\u003e\u003cstrong\u003e3-position (VCC, GND, DAT)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHeader pins\u003c\/span\u003e\u003cstrong\u003eVCC, GND, DAT (2.54mm)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply voltage\u003c\/span\u003e\u003cstrong\u003e3.0–5.5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard size\u003c\/span\u003e\u003cstrong\u003e23.4 × 20.3mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCompatibility\u003c\/span\u003e\u003cstrong\u003eArduino, ESP32, Raspberry Pi \u0026amp; any 1-Wire host\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor\u003c\/span\u003e\u003cstrong\u003eDS18B20 (not included)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eDS18B20 adapter module (board only)\u003c\/strong\u003e\u003cp\u003eThe DS18B20 sensor\/probe is not included. Pair this with one of our waterproof DS18B20 probes (1m or 3m) or a bare TO-92 DS18B20 sensor.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eTidy, solder-free wiring for a DS18B20 probe\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSwapping or replacing probes without rework\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eBreadboard prototyping and quick test rigs\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePermanent installs with screw-terminal probes\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eMulti-probe 1-Wire sensor chains\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAquarium, brewing, fridge \u0026amp; weather builds\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the probe to the screw terminal\u003c\/strong\u003e\u003cp\u003eLoosen the screws, insert the probe leads — Red to VCC, Black to GND, Yellow to DAT — and tighten.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePlug into your board\u003c\/strong\u003e\u003cp\u003eRun jumpers from the VCC, GND and DAT header pins to 3.3–5V, GND and a free GPIO. No pull-up resistor to add — it's already on the board.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eInstall the libraries\u003c\/strong\u003e\u003cp\u003eIn Arduino IDE, install \u003cstrong\u003eOneWire\u003c\/strong\u003e by Jim Studt and \u003cstrong\u003eDallasTemperature\u003c\/strong\u003e by Miles Burton via Library Manager.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eUpload the example sketch\u003c\/strong\u003e\u003cp\u003eOpen File → Examples → DallasTemperature → Simple. Upload and open Serial Monitor at 9600 baud to see your reading.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cbr\u003e\n\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\n\u003csummary\u003eIs the temperature sensor\/probe included?\u003c\/summary\u003e\n\u003cp\u003eNo — this is the adapter board only. Pair it with a DS18B20 waterproof probe (we stock 1m and 3m) or a bare TO-92 DS18B20 sensor.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDo I still need to add a pull-up resistor?\u003c\/summary\u003e\n\u003cp\u003eNo. A 4.7kΩ pull-up is already fitted on the board, so you can wire the probe straight to your microcontroller and it'll communicate reliably.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eWhich terminal goes where?\u003c\/summary\u003e\n\u003cp\u003eThe screw terminal and header are both labelled VCC, GND and DAT. Connect the probe's red wire to VCC, black to GND and yellow (data) to DAT.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eCan I use a bare TO-92 DS18B20?\u003c\/summary\u003e\n\u003cp\u003eYes. Wire the sensor's three legs into the screw terminal following the DS18B20 datasheet pinout (GND, DAT, VCC) and the onboard resistor handles the rest.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eCan I chain multiple probes?\u003c\/summary\u003e\n\u003cp\u003eYes. The DS18B20 is a 1-Wire device — multiple sensors can share the same data line, each with its own unique 64-bit address.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e The terminal and pins are labelled VCC, GND and DAT. The DS18B20 probe is \u003cstrong\u003enot included\u003c\/strong\u003e — grab a 1m or 3m waterproof DS18B20 probe to go with it. The 4.7kΩ pull-up is already on the board, so no extra components are needed.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default","offer_id":42891051630688,"sku":"NZE-DS18B20-ADP","price":2.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/ds18b20-adapter-hero-pure-white-protected-2026-08-31.png?v=1788093664"},{"product_id":"hw-178-74hc4067-16-channel-multiplexer-module","title":"HW-178 74HC4067 16-Channel Analogue\/Digital Multiplexer Module","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe HW-178 74HC4067 module routes one of 16 analogue or digital channels through a shared SIG connection. Four binary select inputs choose the active channel, making it a practical way to expand Arduino, ESP32 and Raspberry Pi projects without using 16 separate signal pins.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eHW-178\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eChannels\u003c\/span\u003e\u003cstrong\u003e16, C0 to C15\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e2V to 6V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSignal range\u003c\/span\u003e\u003cstrong\u003eGND to VCC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eControl\u003c\/span\u003e\u003cstrong\u003eS0 to S3 binary select\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eEnable\u003c\/span\u003e\u003cstrong\u003eEN high disconnects all\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCommon pin\u003c\/span\u003e\u003cstrong\u003eSIG, bidirectional\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003e40.5 x 18.0mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHeaders\u003c\/span\u003e\u003cstrong\u003eNot included\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/HW-178-74HC4067-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the HW-178 74HC4067 module datasheet (PDF)\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eHW-178 74HC4067 module\u003c\/strong\u003e\u003cp\u003eOne assembled blue PCB with unsoldered through-holes. Pin headers are not included.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eReading several analogue sensors with one ADC input\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eExpanding data acquisition and test projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRouting compatible digital or serial signals\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eArduino, ESP32 and Raspberry Pi prototyping\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power\u003c\/strong\u003e\u003cp\u003eConnect VCC to a 2V to 6V supply and connect GND to the controller ground.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect signals\u003c\/strong\u003e\u003cp\u003eConnect the shared signal to SIG, then connect each source or destination to C0 through C15.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSelect a channel\u003c\/strong\u003e\u003cp\u003eDrive S0 to S3 with the channel's binary value. S0 is the least-significant bit, so 0000 selects C0 and 1111 selects C15.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet enable\u003c\/strong\u003e\u003cp\u003eHold EN low to enable the selected channel. Drive EN high to disconnect every channel.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e This module is a signal switch, not a voltage level shifter. Keep every switched signal between GND and the module VCC.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":43150443151456,"sku":"MOD-HW178-74HC4067","price":2.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/01-hw-178-74hc4067-hero.png?v=1789443435"},{"product_id":"slot-type-photoelectric-interrupter-sensor-module","title":"Slot-Type Photoelectric Interrupter Sensor Module - 3.3V to 5V","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThis compact slot-type photoelectric interrupter module detects an opaque vane, wheel or tab passing through its optical fork and provides a digital signal for your controller. Use it for pulse counting, wheel speed, revolution sensing and repeatable position detection in Arduino, ESP32 and similar projects.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor type\u003c\/span\u003e\u003cstrong\u003eTransmissive infrared slot interrupter\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e3.3V to 5.0V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003eDigital switching \/ pulse signal\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnections\u003c\/span\u003e\u003cstrong\u003eOUT, VCC and GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB footprint\u003c\/span\u003e\u003cstrong\u003eApprox. 26.6 x 14.8mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMounting\u003c\/span\u003e\u003cstrong\u003eTwo PCB through-holes\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/Slot-Type-Photoelectric-Interrupter-Module-Datasheet-v1.pdf?v=1789450581\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the slot-type photoelectric interrupter sensor module datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1x\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eSlot-type photoelectric interrupter module\u003c\/strong\u003e\u003cp\u003eOne assembled blue PCB with fitted optical fork and three-pin male header. Encoder disc, cable and mounting hardware are not included.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRobot wheel speed and revolution counting\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSlotted encoder discs and tachometer projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePosition, home and end-of-travel detection\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eDigital event and object-pass counters\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power\u003c\/strong\u003e\u003cp\u003eWith power off, connect VCC to a regulated 3.3V or 5V rail and connect GND to the controller ground.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the signal\u003c\/strong\u003e\u003cp\u003eConnect OUT to a digital input. Use an interrupt-capable pin when you need reliable pulse counting at speed.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck both states\u003c\/strong\u003e\u003cp\u003ePower the module, read OUT with the slot clear, then pass an opaque vane fully through the gap and confirm the state changes.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCalculate motion\u003c\/strong\u003e\u003cp\u003eCount signal edges over time and divide by the number of slots or vanes per revolution to calculate speed or distance.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e This module family appears in more than one circuit revision, so idle output polarity can vary. Check both clear-slot and blocked-slot states in your finished circuit rather than assuming HIGH or LOW at rest.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":43150510063712,"sku":"MOD-WYCH206-SLOT","price":2.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/slot-type-photoelectric-interrupter-sensor-module-hero.png?v=1789446209"},{"product_id":"max13487-ttl-rs485-autodirection-module","title":"MAX13487 TTL to RS485 AutoDirection Module - 5V","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eAdd a half-duplex RS485 interface to a 5V UART without using a separate direction-control pin. This TTL485 V2.0 board uses a MAX13487 transceiver to switch automatically between transmit and receive, with screw terminals, status LEDs and optional onboard termination.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard marking\u003c\/span\u003e\u003cstrong\u003eTTL485 V2.0\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTransceiver\u003c\/span\u003e\u003cstrong\u003eMAX13487\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModule supply\u003c\/span\u003e\u003cstrong\u003e5V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTTL interface\u003c\/span\u003e\u003cstrong\u003eVCC, TXD, RXD, GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRS485 interface\u003c\/span\u003e\u003cstrong\u003eD+\/A, D-\/B, GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBus mode\u003c\/span\u003e\u003cstrong\u003eTwo-wire half duplex\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDirection control\u003c\/span\u003e\u003cstrong\u003eAutomatic\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMaximum data rate\u003c\/span\u003e\u003cstrong\u003e500 kbps transceiver limit\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eReceiver loading\u003c\/span\u003e\u003cstrong\u003e1\/4 unit load, up to 128 nodes\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBus ESD protection\u003c\/span\u003e\u003cstrong\u003e±15 kV HBM at the transceiver\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eStatus LEDs\u003c\/span\u003e\u003cstrong\u003ePower, TXD and RXD\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTermination\u003c\/span\u003e\u003cstrong\u003e120 ohm via 120_S bridge\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/MAX13487-TTL-RS485-AutoDirection-Module-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the MAX13487 TTL to RS485 AutoDirection module datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eMAX13487 TTL to RS485 AutoDirection module\u003c\/strong\u003e\u003cp\u003eRed TTL485 V2.0 PCB with fitted pin header and three-position screw terminal.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eMicrocontroller-to-RS485 links\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eIndustrial sensors and controllers\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eMulti-drop serial networks\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAutomation and HVAC projects\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect power with the circuit off\u003c\/strong\u003e\u003cp\u003eConnect a regulated 5V rail to VCC and join the controller and module grounds.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the UART\u003c\/strong\u003e\u003cp\u003eConnect controller TX to TXD and controller RX to RXD. The module handles transmit and receive direction automatically.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the RS485 bus\u003c\/strong\u003e\u003cp\u003eConnect D+\/A to the remote A or + terminal and D-\/B to the remote B or - terminal. Keep polarity consistent across the bus.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet termination only at a cable end\u003c\/strong\u003e\u003cp\u003eBridge 120_S only when this module is at a physical end of the RS485 cable. Leave it open at intermediate nodes.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":43162674266208,"sku":"MOD-MAX13487-RS485","price":3.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/max13487-rs485-autodirection-module-hero.png?v=1789895024"},{"product_id":"cdebyte-915mhz-fpc-antenna-ipex1-ufl","title":"CDEBYTE 915 MHz FPC Antenna - IPEX-1 \/ U.FL","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eLow-profile CDEBYTE 915 MHz flexible antennas for compatible LoRa, telemetry and sub-GHz IoT radio hardware. Choose the element size, tuning range and nominal gain that suit the enclosure, then confirm the radio uses an IPEX-1 \/ U.FL connector.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTX915-FPC-3009\u003c\/span\u003e\u003cstrong\u003e910-920 MHz, 2.5 dBi, 30 x 9 mm FPC, 100 mm cable\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTX915-FPC-4510\u003c\/span\u003e\u003cstrong\u003e868-930 MHz, 2.0 dBi, 45 x 10 mm FPC, approx. 90 mm cable\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTX915-FPC-7020\u003c\/span\u003e\u003cstrong\u003e900-940 MHz, 3.5 dBi, 70 x 20 mm FPC, 121 mm cable\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTX915-FPC-8521\u003c\/span\u003e\u003cstrong\u003e860-940 MHz, 4.0 dBi, 85 x 21 mm FPC, 140 mm cable\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnector\u003c\/span\u003e\u003cstrong\u003eIPEX-1 \/ U.FL cable plug\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eNominal impedance\u003c\/span\u003e\u003cstrong\u003e50 ohm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/915MHz-FPC-Antenna-Family-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the 915 MHz FPC antenna family technical datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003e915 MHz FPC antenna family technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1x\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eSelected FPC antenna\u003c\/strong\u003e\u003cp\u003eOne adhesive-backed antenna with fitted black micro-coax lead and IPEX-1 \/ U.FL plug.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLoRa and LoRaWAN radio modules\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eAU915 telemetry projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eEmbedded IoT nodes\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eNon-metallic equipment enclosures\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck the connector\u003c\/strong\u003e\u003cp\u003eConfirm the radio uses IPEX-1 \/ U.FL. Smaller MHF4-style connectors are not interchangeable.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower the radio off\u003c\/strong\u003e\u003cp\u003eAlign the plug squarely and press straight down on the metal shell. Do not lever or rotate the connector.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eChoose the mounting area\u003c\/strong\u003e\u003cp\u003eBond the FPC to a clean, dry, non-metallic surface and keep the radiating element clear of metal, carbon fibre, batteries and high-current wiring.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eValidate the final installation\u003c\/strong\u003e\u003cp\u003eEnclosure materials, cable routing and nearby conductive parts can change antenna performance. Test the complete radio in its finished enclosure.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e This is a passive antenna. The transmitter, operating frequency, output power, antenna gain and installation together determine the system's radiated output and compliance. Confirm the complete radio system meets the rules for its intended New Zealand use.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"CDEBYTE","offers":[{"title":"TX915-FPC-3009 - 30 x 9 mm","offer_id":43168231489632,"sku":"ANT-TX915-FPC-3009","price":3.99,"currency_code":"NZD","in_stock":true},{"title":"TX915-FPC-4510 - 45 x 10 mm","offer_id":43168231522400,"sku":"ANT-TX915-FPC-4510","price":4.49,"currency_code":"NZD","in_stock":true},{"title":"TX915-FPC-7020 - 70 x 20 mm","offer_id":43168231555168,"sku":"ANT-TX915-FPC-7020","price":4.79,"currency_code":"NZD","in_stock":true},{"title":"TX915-FPC-8521 - 85 x 21 mm","offer_id":43168231587936,"sku":"ANT-TX915-FPC-8521","price":4.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/cdebyte-915mhz-fpc-antenna-topside.png?v=1790023541"},{"product_id":"vengim-vg521t-din-rail-power-on-delay-timer-relay","title":"VENGIM VG521T DIN-Rail Power-On Delay Timer Relay","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eAdd a controlled start delay to pumps, lighting, access systems and other automation circuits. The slim VENGIM VG521T begins timing when power reaches A1 and A2, then changes its SPDT output after the selected delay from 0.1 seconds to 10 days.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eVENGIM VG521T\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTiming function\u003c\/span\u003e\u003cstrong\u003ePower-on delay\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply voltage\u003c\/span\u003e\u003cstrong\u003e12-240 V AC\/DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply frequency\u003c\/span\u003e\u003cstrong\u003e50\/60 Hz for AC operation\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTime range\u003c\/span\u003e\u003cstrong\u003e0.1 seconds to 10 days\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSetting accuracy\u003c\/span\u003e\u003cstrong\u003e±5% of full range\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput contact\u003c\/span\u003e\u003cstrong\u003e1 C\/O, SPDT\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eResistive load rating\u003c\/span\u003e\u003cstrong\u003e5 A at 240 V AC or 24 V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTerminals\u003c\/span\u003e\u003cstrong\u003eA1, A2, 15 common, 16 NC, 18 NO\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating temperature\u003c\/span\u003e\u003cstrong\u003e-20 to +55 °C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDimensions\u003c\/span\u003e\u003cstrong\u003e18 x 65 x 90 mm, W x D x H\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMounting\u003c\/span\u003e\u003cstrong\u003e35 mm DIN rail\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\n\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/VG521T-DIN-Rail-Power-On-Delay-Timer-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the VG521T DIN-rail power-on delay timer relay datasheet PDF\"\u003e\n\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\n\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eVENGIM VG521T timer relay\u003c\/strong\u003e\u003cp\u003e18 mm DIN-rail module with screw terminals and two front adjustment controls.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eStaggered equipment start-up\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePump and motor control panels\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLighting and building automation\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eDoors, gates, shutters and control systems\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eIsolate the circuit\u003c\/strong\u003e\u003cp\u003eDisconnect and verify the supply before touching any terminal. Use a licensed electrical worker for fixed or mains wiring in New Zealand.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the timer supply\u003c\/strong\u003e\u003cp\u003eConnect the control supply across A1 and A2. Timing starts when this supply is energised.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSelect the timed contact\u003c\/strong\u003e\u003cp\u003eTerminal 15 is common. Use 15-18 for a normally open output that closes after the delay, or 15-16 for a normally closed output that opens after the delay.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the delay\u003c\/strong\u003e\u003cp\u003eChoose the range with the upper selector, then set 10-100% of that range with the lower dial. For example, 10 seconds at 30% gives about 3 seconds.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The 5 A rating applies to resistive loads. Inductive loads such as contactor coils, motors and solenoids may require additional suppression or an appropriately rated external contactor.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e","brand":"VENGIM","offers":[{"title":"Default Title","offer_id":50512898981984,"sku":"REL-TMR-VG521T","price":48.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/01-vg521t-hero.png?v=1790084142"},{"product_id":"433mhz-two-button-wireless-relay-kit","title":"433MHz Mini Wireless Relay Switch Kit - Two-Button Remote","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eControl a low-voltage circuit from a compact two-button key fob. This kit pairs one A\/B remote with one enclosed 433 MHz single-channel relay receiver, powered from 3.5 to 12 V DC. Choose momentary, toggle, A-on\/B-off or timed operation to suit the project.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eReceiver supply\u003c\/span\u003e\u003cstrong\u003e3.5 to 12 V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRadio\u003c\/span\u003e\u003cstrong\u003e433 MHz ASK\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRelay output\u003c\/span\u003e\u003cstrong\u003e1 changeover contact, NO \/ COM \/ NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad\u003c\/span\u003e\u003cstrong\u003e1 A maximum; design below 0.7 A\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOperating modes\u003c\/span\u003e\u003cstrong\u003eMomentary, toggle, two-button latched, 5 \/ 10 \/ 15 s delay\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eStandby current\u003c\/span\u003e\u003cstrong\u003e5 mA\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eReceiver case\u003c\/span\u003e\u003cstrong\u003e39.5 x 20 x 10.5 mm, excluding leads\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eWiring\u003c\/span\u003e\u003cstrong\u003e5 pre-wired leads for supply and relay contacts\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRemote\u003c\/span\u003e\u003cstrong\u003e1 A\/B two-button key fob\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/RF433-AB-Relay-Kit-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the 433 MHz relay kit datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eSingle-channel receiver and A\/B key fob\u003c\/strong\u003e\u003cp\u003eReceiver with five pre-wired leads, one two-button remote and its key clip.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLow-current DC switching\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eBench prototypes and control inputs\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRemote on\/off or short timed activation\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eIdentify the leads\u003c\/strong\u003e\u003cp\u003eCheck the receiver PCB markings for V+, V-, NO, COM and NC before connecting. Do not identify the functions by wire colour alone.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect a DC supply and load\u003c\/strong\u003e\u003cp\u003ePower the receiver from 3.5 to 12 V DC. Wire the low-voltage load through COM and the contact that gives the required off state.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eChoose a mode and pair the remote\u003c\/strong\u003e\u003cp\u003eUse the learning button to select the output mode, then pair the A\/B key fob. See the datasheet for button counts and the clear-code sequence.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Use this wired kit only for low-voltage DC projects. The 1 A figure is a maximum contact rating, not a recommended continuous design load.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50514983190624,"sku":"REL-RF433-AB-1CH","price":19.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rf433-ab-relay-kit-hero-white.png?v=1790158531"},{"product_id":"lj12a3-4-zby-inductive-proximity-sensor-pnp-no","title":"LJ12A3-4-Z\/BY Inductive Proximity Sensor - PNP NO, 4 mm","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eThe LJ12A3-4-Z\/BY is an M12 inductive proximity sensor for detecting metal without contact. Its PNP normally-open output switches on when a suitable metal target enters the nominal 4 mm sensing range. Use it for position sensing and end-stop detection with a compatible DC control input.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eLJ12A3-4-Z\/BY\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003ePNP, normally open, three-wire\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e6 to 36 V DC; nominal 12 to 24 V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eNominal sensing distance\u003c\/span\u003e\u003cstrong\u003e4 mm ±10% with iron target\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eRecommended set distance\u003c\/span\u003e\u003cstrong\u003e0 to 3.6 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMaximum output current\u003c\/span\u003e\u003cstrong\u003e300 mA\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eResponse frequency\u003c\/span\u003e\u003cstrong\u003e500 Hz\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eMounting\u003c\/span\u003e\u003cstrong\u003eM12 threaded barrel, non-flush\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBody length\u003c\/span\u003e\u003cstrong\u003e56.7 mm nominal, excluding cable relief\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eHousing \/ sensing face\u003c\/span\u003e\u003cstrong\u003eNickel-plated brass \/ ABS\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eEnclosure rating\u003c\/span\u003e\u003cstrong\u003eIP67; protect cable joints separately\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTemperature\u003c\/span\u003e\u003cstrong\u003e-30 to +65 °C, no condensation or freezing\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/LJ12A3-4-ZBY-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the LJ12A3-4-Z\/BY datasheet (PDF)\"\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eLJ12A3-4-Z\/BY sensor with attached cable\u003c\/strong\u003e\u003cp\u003eIncludes two mounting nuts and two lock washers.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eMetal part detection\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePosition sensing on jigs\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eCNC end stops with a compatible PNP input\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck the input and wiring\u003c\/strong\u003e\u003cp\u003eConfirm the diagram on the supplied sensor. Standard three-wire PNP wiring is brown to positive, blue to 0 V and black to the compatible input or load, with its return at 0 V.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eMount and power it\u003c\/strong\u003e\u003cp\u003eKeep the blue sensing face proud of surrounding metal. With power off, connect a regulated DC supply within the stated range. Apply power and bring an iron target within the set distance.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck detection\u003c\/strong\u003e\u003cp\u003eThe input should activate near the target and release when it is removed. Allow for a shorter detection range with non-magnetic metals.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The PNP output can approach the sensor supply voltage. Use a suitable interface for 3.3 V or 5 V logic; do not connect the output directly to a microcontroller GPIO. Replacing an NPN sensor requires checking the controller input and wiring.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"LERCKO","offers":[{"title":"Default Title","offer_id":50519515234400,"sku":"SEN-LJ12A3-PNP-NO","price":5.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/lj12a3-4-zby-full-kit-hero.png?v=1790243199"},{"product_id":"5v-photoresistor-light-control-relay-module","title":"5V Photoresistor Light-Control Relay Module","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eSwitch a low-voltage circuit automatically as the light level changes. This 5V module has an onboard photoresistor and an adjustable threshold, with a changeover relay output for a simple light-controlled project.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e5V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor\u003c\/span\u003e\u003cstrong\u003eOnboard photoresistor\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eAdjustment\u003c\/span\u003e\u003cstrong\u003eTrimmer sets switching threshold\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003e1 SPDT changeover relay\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply pins\u003c\/span\u003e\u003cstrong\u003eVCC, GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContact terminals\u003c\/span\u003e\u003cstrong\u003eNO, COM, NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB dimensions\u003c\/span\u003e\u003cstrong\u003e50 x 26 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIndicators\u003c\/span\u003e\u003cstrong\u003ePower and relay state\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIncluded quantity\u003c\/span\u003e\u003cstrong\u003e1 assembled module\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-LDR-5V-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-LDR-5V datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e5V Photoresistor Light-Control Relay Module\u003c\/strong\u003e\u003cp\u003eAssembled module with fitted terminals.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLight-sensitive switching\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLow-voltage lighting projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eElectronics demonstrations\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the supply\u003c\/strong\u003e\u003cp\u003eWith power off, connect 5V DC to VCC and supply return to GND. Keep the load disconnected for the first test.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the threshold\u003c\/strong\u003e\u003cp\u003ePower the module and adjust the trimmer while shading and uncovering the photoresistor. Check the relay click and contact continuity as the light changes.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect a small DC load\u003c\/strong\u003e\u003cp\u003eTurn power off. Route the separate load circuit through COM and NO for switching when the relay energises, or COM and NC for the opposite state. Keep the sensor clear of light from the controlled load.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The contact ratings printed on the relay describe the fitted component, not a certified rating for the assembled board. Use low-voltage DC for prototyping and keep exposed terminals protected.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521332744288,"sku":"REL-LDR-5V","price":5.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-ldr-5v-hero.png?v=1790334923"},{"product_id":"12v-photoresistor-light-control-relay-module","title":"12V Photoresistor Light-Control Relay Module","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eSwitch a low-voltage circuit automatically as the light level changes. This 12V module has an onboard photoresistor and an adjustable threshold, with a changeover relay output for a simple light-controlled project.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e12V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSensor\u003c\/span\u003e\u003cstrong\u003eOnboard photoresistor\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eAdjustment\u003c\/span\u003e\u003cstrong\u003eTrimmer sets switching threshold\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eOutput\u003c\/span\u003e\u003cstrong\u003e1 SPDT changeover relay\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply pins\u003c\/span\u003e\u003cstrong\u003eVCC, GND\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContact terminals\u003c\/span\u003e\u003cstrong\u003eNO, COM, NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB dimensions\u003c\/span\u003e\u003cstrong\u003e50 x 26 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIndicators\u003c\/span\u003e\u003cstrong\u003ePower and relay state\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIncluded quantity\u003c\/span\u003e\u003cstrong\u003e1 assembled module\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-LDR-12V-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-LDR-12V datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e12V Photoresistor Light-Control Relay Module\u003c\/strong\u003e\u003cp\u003eAssembled module with fitted terminals.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLight-sensitive switching\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eLow-voltage lighting projects\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eElectronics demonstrations\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the supply\u003c\/strong\u003e\u003cp\u003eWith power off, connect 12V DC to VCC and supply return to GND. Keep the load disconnected for the first test.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the threshold\u003c\/strong\u003e\u003cp\u003ePower the module and adjust the trimmer while shading and uncovering the photoresistor. Check the relay click and contact continuity as the light changes.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect a small DC load\u003c\/strong\u003e\u003cp\u003eTurn power off. Route the separate load circuit through COM and NO for switching when the relay energises, or COM and NC for the opposite state. Keep the sensor clear of light from the controlled load.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e The contact ratings printed on the relay describe the fitted component, not a certified rating for the assembled board. Use low-voltage DC for prototyping and keep exposed terminals protected.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521333563488,"sku":"REL-LDR-12V","price":5.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-ldr-12v-hero.png?v=1790334930"},{"product_id":"ky-023-xy-joystick-module-with-push-button","title":"KY-023 XY Joystick Module with Push Button","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eAdd thumb control to a robot, menu or game project. This KY-023 joystick provides two analogue position signals and a push-button switch through a fitted five-pin header. It operates from 3.3V to 5V DC.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e3.3V to 5V DC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePosition outputs\u003c\/span\u003e\u003cstrong\u003eVRx and VRy, analogue\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eButton output\u003c\/span\u003e\u003cstrong\u003eSW, push to operate\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePotentiometers\u003c\/span\u003e\u003cstrong\u003e2 x 10 kΩ nominal\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCentre output\u003c\/span\u003e\u003cstrong\u003eApproximately half the supply\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePins\u003c\/span\u003e\u003cstrong\u003eGND, +5V, VRx, VRy, SW\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB dimensions\u003c\/span\u003e\u003cstrong\u003e34 x 26 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnection\u003c\/span\u003e\u003cstrong\u003eFitted five-pin header\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIncluded quantity\u003c\/span\u003e\u003cstrong\u003e1 module with thumb cap\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/MOD-KY023-JOYSTICK-Datasheet-v1.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the MOD-KY023-JOYSTICK datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eKY-023 XY Joystick Module with Push Button\u003c\/strong\u003e\u003cp\u003eFitted thumb cap and five-pin header.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eRobot controls\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eMenu navigation\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eGame and interface prototypes\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eMatch the voltage\u003c\/strong\u003e\u003cp\u003eConnect GND and the supply pin marked +5V. Use 5V with a 5V controller, or 3.3V with a 3.3V ADC so the axis signals stay within the controller input range.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eRead the controls\u003c\/strong\u003e\u003cp\u003eConnect VRx and VRy to analogue inputs. Connect SW to a digital input with a pull-up enabled. On an Arduino UNO R3, use A0, A1 and D2 with INPUT_PULLUP.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eCheck and calibrate\u003c\/strong\u003e\u003cp\u003eMove each axis and check that its reading changes. Press the cap to pull SW low. Measure the centre reading at rest and add a small software dead zone to prevent unwanted movement.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003c\/div\u003e","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521333596256,"sku":"MOD-KY023-JOYSTICK","price":2.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/mod-ky023-joystick-hero.png?v=1790334936"},{"product_id":"1-channel-3-3v-relay-module-with-high-low-trigger","title":"1-Channel 3.3V Relay Module with High\/Low Trigger","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eA single-channel relay board for 3.3V boards such as the ESP32, ESP8266 and Raspberry Pi Pico. It runs from 3.3V, switches a separate circuit with relay contacts rated up to 10A at 250VAC, and a jumper sets whether the input switches on with a high or low signal.\u003cbr\u003e\u003cbr\u003eUsing a 5V Arduino such as an Uno or Nano? Choose the \u003ca href=\"\/products\/1-channel-5v-relay-module-with-high-low-trigger\"\u003e1-Channel 5V Relay Module\u003c\/a\u003e instead.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e3.3V DC on DC+ and DC-\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, AC\u003c\/span\u003e\u003cstrong\u003e10A at 250VAC, 15A at 125VAC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, DC\u003c\/span\u003e\u003cstrong\u003e10A at 30VDC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContacts\u003c\/span\u003e\u003cstrong\u003eSPDT: COM, NO and NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger\u003c\/span\u003e\u003cstrong\u003eHigh or low, set by jumper\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInput stage\u003c\/span\u003e\u003cstrong\u003eOptocoupler\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eChannels\u003c\/span\u003e\u003cstrong\u003e1\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eConnections\u003c\/span\u003e\u003cstrong\u003eScrew terminals\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003eApprox. 51 x 25.5 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-1CH-3V3-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-1CH-3V3 datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e1-Channel 3.3V Relay Module with High\/Low Trigger\u003c\/strong\u003e\u003cp\u003eAssembled board with screw terminals fitted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSwitching a 12V pump, fan or LED strip from an ESP32\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eHome automation projects with ESPHome or Home Assistant\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSolenoid valves, door strikes and buzzers\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the trigger\u003c\/strong\u003e\u003cp\u003eWith power off, move the jumper to H to switch the relay on with a high signal, or to L to switch it on with a low signal.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower and signal\u003c\/strong\u003e\u003cp\u003eConnect 3.3V DC to DC+ and DC-. Join DC- to your board's ground and connect its output pin to IN. Use a 3.3V rail with spare current for the relay coil, not a GPIO pin, and never connect 5V to DC+.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTest before adding the load\u003c\/strong\u003e\u003cp\u003eWith nothing on the contacts, switch the input. The relay should click and the indicator light, and COM should connect to NO. When released, COM connects to NC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the load\u003c\/strong\u003e\u003cp\u003eTurn everything off. Run the load circuit through COM and NO to switch it on when triggered, or through COM and NC to switch it off when triggered. Stay within the load limits.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Mains voltage can kill. Only wire mains loads if you are competent to do so, fully enclose the board so no terminal or solder joint can be touched, and follow NZ electrical safety rules. Motors and lamps draw a surge at switch-on, so leave margin below the limits.\u003c\/p\u003e\n\u003c\/div\u003e\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521333760096,"sku":"REL-1CH-3V3","price":3.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-1ch-3v3-hero.png?v=1790334942"},{"product_id":"1-channel-5v-relay-module-with-high-low-trigger","title":"1-Channel 5V Relay Module with High\/Low Trigger","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eA single-channel relay board that lets an Arduino or other 5V controller switch a separate circuit on and off. The relay contacts handle up to 10A at 250VAC, a jumper sets whether the input switches on with a high or low signal, and the input goes through an optocoupler.\u003cbr\u003e\u003cbr\u003eUsing a 3.3V board such as an ESP32 or Pico? Choose the \u003ca href=\"\/products\/1-channel-3-3v-relay-module-with-high-low-trigger\"\u003e1-Channel 3.3V Relay Module\u003c\/a\u003e instead.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e5V DC on DC+ and DC-\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, AC\u003c\/span\u003e\u003cstrong\u003e10A at 250VAC, 15A at 125VAC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, DC\u003c\/span\u003e\u003cstrong\u003e10A at 30VDC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContacts\u003c\/span\u003e\u003cstrong\u003eSPDT: COM, NO and NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger\u003c\/span\u003e\u003cstrong\u003eHigh or low, set by jumper\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger voltage\u003c\/span\u003e\u003cstrong\u003eHigh 3-5V, low 0-1.5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInput current\u003c\/span\u003e\u003cstrong\u003e2-4mA\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eBoard current\u003c\/span\u003e\u003cstrong\u003e190mA max, relay on\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003eApprox. 51 x 25.5 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-1CH-5V-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-1CH-5V datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e1-Channel 5V Relay Module with High\/Low Trigger\u003c\/strong\u003e\u003cp\u003eAssembled board with screw terminals fitted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSwitching a 12V pump, fan or LED strip from an Arduino\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSolenoid valves, door strikes and buzzers\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eTurning a lamp on and off from a timer or sensor\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the trigger\u003c\/strong\u003e\u003cp\u003eWith power off, move the jumper to H to switch the relay on with a high signal, or to L to switch it on with a low signal.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower and signal\u003c\/strong\u003e\u003cp\u003eConnect 5V DC to DC+ and DC-. Join DC- to your controller's ground and connect its output pin to IN. Power the board from a 5V rail, not from a GPIO pin.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTest before adding the load\u003c\/strong\u003e\u003cp\u003eWith nothing on the contacts, switch the input. The relay should click and the indicator light, and COM should connect to NO. When released, COM connects to NC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the load\u003c\/strong\u003e\u003cp\u003eTurn everything off. Run the load circuit through COM and NO to switch it on when triggered, or through COM and NC to switch it off when triggered. Stay within the load limits.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Mains voltage can kill. Only wire mains loads if you are competent to do so, fully enclose the board so no terminal or solder joint can be touched, and follow NZ electrical safety rules. Motors and lamps draw a surge at switch-on, so leave margin below the limits.\u003c\/p\u003e\n\u003c\/div\u003e\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521334055008,"sku":"REL-1CH-5V","price":3.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-1ch-5v-hero.png?v=1790334948"},{"product_id":"2-channel-5v-relay-module-with-high-low-trigger","title":"2-Channel 5V Relay Module with High\/Low Trigger","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eA 2-channel relay board that lets an Arduino or other 5V controller switch two separate circuits on and off independently. Each relay handles up to 10A at 250VAC, jumpers set whether the inputs switch on with a high or low signal, and every input goes through an optocoupler.\u003cbr\u003e\u003cbr\u003eUsing a 3.3V board such as an ESP32 or Pico? This board needs a 5V supply; see the FAQ below, or use the \u003ca href=\"\/products\/1-channel-3-3v-relay-module-with-high-low-trigger\"\u003e1-Channel 3.3V Relay Module\u003c\/a\u003e for a single circuit.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e5V DC on DC+ and DC-\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eChannels\u003c\/span\u003e\u003cstrong\u003e2, independently controlled\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, AC\u003c\/span\u003e\u003cstrong\u003e10A at 250VAC, 15A at 125VAC per channel\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, DC\u003c\/span\u003e\u003cstrong\u003e10A at 30VDC per channel\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContacts\u003c\/span\u003e\u003cstrong\u003eSPDT per channel: COM, NO and NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger\u003c\/span\u003e\u003cstrong\u003eHigh or low, set by jumper\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger voltage\u003c\/span\u003e\u003cstrong\u003eHigh 3-5V, low 0-1.5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInput current\u003c\/span\u003e\u003cstrong\u003e2-4mA per input\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003e51 x 45.8 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-2CH-5V-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-2CH-5V datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e2-Channel 5V Relay Module with High\/Low Trigger\u003c\/strong\u003e\u003cp\u003eAssembled board with screw terminals fitted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSwitching a pump and a fan separately from an Arduino\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eTwo-zone watering or lighting control\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSolenoid valves, door strikes and buzzers\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the triggers\u003c\/strong\u003e\u003cp\u003eWith power off, move each channel's jumper to H to switch that relay on with a high signal, or to L to switch it on with a low signal.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower and signal\u003c\/strong\u003e\u003cp\u003eConnect 5V DC to DC+ and DC-. Join DC- to your controller's ground and connect one output pin to each IN terminal you use (IN1 and IN2). Power the board from a 5V rail that can run all the relays at once, not from a GPIO pin.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTest each channel\u003c\/strong\u003e\u003cp\u003eWith nothing on the contacts, switch each input in turn. That relay should click and its indicator light, and its COM should connect to NO. When released, COM connects to NC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the loads\u003c\/strong\u003e\u003cp\u003eTurn everything off. Run each load circuit through its channel's COM and NO to switch it on when triggered, or COM and NC to switch it off when triggered. Stay within the load limits on every channel.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Mains voltage can kill. Only wire mains loads if you are competent to do so, fully enclose the board so no terminal or solder joint can be touched, and follow NZ electrical safety rules. Motors and lamps draw a surge at switch-on, so leave margin below the limits.\u003c\/p\u003e\n\u003c\/div\u003e\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521334186080,"sku":"REL-2CH-5V","price":5.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-2ch-5v-hero.png?v=1790334955"},{"product_id":"4-channel-5v-relay-module-with-high-low-trigger","title":"4-Channel 5V Relay Module with High\/Low Trigger","description":"\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\u003cp class=\"nznpd__intro\"\u003eA 4-channel relay board that lets an Arduino or other 5V controller switch four separate circuits on and off independently. Each relay handles up to 10A at 250VAC, jumpers set whether the inputs switch on with a high or low signal, and every input goes through an optocoupler.\u003cbr\u003e\u003cbr\u003eUsing a 3.3V board such as an ESP32 or Pico? This board needs a 5V supply; see the FAQ below, or use the \u003ca href=\"\/products\/1-channel-3-3v-relay-module-with-high-low-trigger\"\u003e1-Channel 3.3V Relay Module\u003c\/a\u003e for a single circuit.\u003c\/p\u003e\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eSupply\u003c\/span\u003e\u003cstrong\u003e5V DC on DC+ and DC-\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eChannels\u003c\/span\u003e\u003cstrong\u003e4, independently controlled\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, AC\u003c\/span\u003e\u003cstrong\u003e10A at 250VAC, 15A at 125VAC per channel\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLoad limit, DC\u003c\/span\u003e\u003cstrong\u003e10A at 30VDC per channel\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eContacts\u003c\/span\u003e\u003cstrong\u003eSPDT per channel: COM, NO and NC\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger\u003c\/span\u003e\u003cstrong\u003eHigh or low, set by jumper\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eTrigger voltage\u003c\/span\u003e\u003cstrong\u003eHigh 3-5V, low 0-1.5V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eInput current\u003c\/span\u003e\u003cstrong\u003e2-4mA per input\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePCB size\u003c\/span\u003e\u003cstrong\u003e73 x 50 mm\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eDatasheets\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__ds\"\u003e\u003ca class=\"nznpd__dsbar\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/REL-4CH-5V-Datasheet-v2.pdf\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download the REL-4CH-5V datasheet (PDF)\"\u003e\u003csvg width=\"20\" height=\"20\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"14 2 14 8 20 8\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003cspan\u003eFull technical datasheet\u003c\/span\u003e\u003cspan class=\"nznpd__dsmeta\"\u003ePDF\u003csvg width=\"17\" height=\"17\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cline x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003e4-Channel 5V Relay Module with High\/Low Trigger\u003c\/strong\u003e\u003cp\u003eAssembled board with screw terminals fitted.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eFour-zone garden watering from an Arduino\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSwitching lights, fans and pumps from one controller\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eHome automation and control-panel builds\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003csection class=\"nznpd__block\"\u003e\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eWiring \u0026amp; getting started\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSet the triggers\u003c\/strong\u003e\u003cp\u003eWith power off, move each channel's jumper to H to switch that relay on with a high signal, or to L to switch it on with a low signal.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003ePower and signal\u003c\/strong\u003e\u003cp\u003eConnect 5V DC to DC+ and DC-. Join DC- to your controller's ground and connect one output pin to each IN terminal you use (IN1 to IN4). Power the board from a 5V rail that can run all the relays at once, not from a GPIO pin.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eTest each channel\u003c\/strong\u003e\u003cp\u003eWith nothing on the contacts, switch each input in turn. That relay should click and its indicator light, and its COM should connect to NO. When released, COM connects to NC.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect the loads\u003c\/strong\u003e\u003cp\u003eTurn everything off. Run each load circuit through its channel's COM and NO to switch it on when triggered, or COM and NC to switch it off when triggered. Stay within the load limits on every channel.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\u003c\/section\u003e\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e Mains voltage can kill. Only wire mains loads if you are competent to do so, fully enclose the board so no terminal or solder joint can be touched, and follow NZ electrical safety rules. Motors and lamps draw a surge at switch-on, so leave margin below the limits.\u003c\/p\u003e\n\u003c\/div\u003e\n","brand":"NZN Electronics","offers":[{"title":"Default Title","offer_id":50521334284384,"sku":"REL-4CH-5V","price":8.49,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/rel-4ch-5v-hero.png?v=1790334962"}],"url":"https:\/\/www.nznelectronics.co.nz\/collections\/sensors-modules.oembed","provider":"NZN Electronics","version":"1.0","type":"link"}