আউটপুট হিসাবে একটি জিপিআইও পিন সেট টগল করছে


9

আমি এখানে পড়েছি যে পাইথনে আউটপুট করার জন্য একটি জিপিআইও পিনের স্থিতিটি নিম্নলিখিত কমান্ডটি ব্যবহার করে টগল করতে পারলাম:

GPIO.output(LED, not GPIO.input(LED))

LEDপিনের মান কোথায় আমি নিম্নলিখিত কোড ব্যবহার করে LED চালু করতে পারি:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
GPIO.setup(LED,GPIO.OUT)
GPIO.output(LED,True)

তবে আমি চেষ্টা করার পরে GPIO.output(LED, not GPIO.input(LED)), নিম্নলিখিত ত্রুটি নিক্ষেপ করা হয়।

RPI.GPIO.WrongDirectionException: GPIO চ্যানেলটি সেট আপ করা হয়নি বা ভুল পথে সেট আপ করা হয়নি

আমার কি জিপিআইও চ্যানেল উপরের থেকে আলাদাভাবে স্থাপন করার কথা আছে বা যে সাইটটি আমি উল্লেখ করেছি সেগুলি ভুল তথ্য পোস্ট করছে?

উত্তর:


13

আপনি একটি আউটপুট পড়তে পারবেন না। পিনের স্থিতি কেবল একটি ভেরিয়েবলের মধ্যে সঞ্চয় করুন।

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
ledState = False
GPIO.setup(LED,GPIO.OUT)

ledState = not ledState
GPIO.output(LED, ledState)

8

যদিও অন্য কোথাও উল্লেখ করা হয়েছে, আপনি একই জিপিআইও পিনটি ইনপুট করে একটি আউটপুট পড়তে পারেন এবং এর আগে যে মান সেট করে দিয়েছেন তা ফেরত পেতে পারেন:

GPIO.setup(LED_red, GPIO.OUT) #set Pin LED_red as aoutput

GPIO.output(LED_red, GPIO.HIGH) #set Pin LED_red = HIGH (ON)

GPIO.input(LED_red) returns 1 

আসলে আপনি একটি আউটপুট পোর্ট পড়তে পারেন। তবে মনে রাখবেন যে আপনি যদি অন্য কোনও প্রক্রিয়া থেকে এটি করেন এবং তারপরে GPIO.cleanup () কল করেন, এর ফলে বন্দরটি শূন্যে পরিবর্তিত হবে।
ডায়োমিডিস স্পিনেলিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.