জিপিআইও-র মাধ্যমে কীভাবে আমি একটি বোতাম পড়তে পারি?


15

আমি নিজেকে অনেক আগে এই ধরণের প্রাথমিক স্তরের জিনিসগুলির বাইরে বিবেচনা করেছি, তবে আমি অনুমান করি যে আমি যতটা স্মার্ট ছিলাম ততটা আমি মনে করি না কারণ মনে হয় এটির সাথে আমার ব্যতিক্রমী স্তর রয়েছে trouble

সুতরাং আমি শেষ পর্যন্ত পরীক্ষাগুলি শেষ করেছি এবং আমার নতুন খেলনা নিয়ে খেলতে পারি, তাই আমি প্রথম কাজটি করেছিলাম ইউআআরটি-র উপরে সজ্জিত একটি এলসিডি চরিত্র প্রদর্শন। আমি যে কাজ করে কোন সমস্যা নেই, তাই আমি এই বোতামটি নিয়ে কেন এত কঠিন সময় পাচ্ছি তা বুঝতে পেরে আমি সত্যিই খুব কঠিন সময় কাটাচ্ছি!

সুতরাং আমি আর্ডুইনোর সাথে একইভাবে বোতামটি সেটআপ করেছি; 1 কে প্রতিরোধকের সাথে স্থলে সংযোগ স্থাপন করুন। আমি আমার মাল্টিমিটারটি ব্যবহার করে তা নিশ্চিত করেছিলাম যে বোতামটি কাজ করছে এবং সঠিক পরিমাণে শক্তি প্রয়োগ করছে, যা এটি। আমি আমার শেলটিতে এসএসএইচ করি, জিপিআইও পিন 7-এ বোতামটি প্লাগ করে পাইথনে চলে যাই। আমি যা চেষ্টা করেছি তা এখানে:

GPIO.pinout(GPIO.BOARD)
GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
while 1==1:
    inputval = GPIO.input(7)
    print inputval

Falseআমি কীভাবে বোতাম টিপছি তা নির্বিশেষে এটি আমাকে একটি অন্তহীন লুপ দেয় । আমি এটির সাথেও চেষ্টা করেছিলাম GPIO.PUD_UPএবং এর Trueপরিবর্তে একটি অন্তহীন লুপ পেয়েছি । আমি এটি দিয়ে চেষ্টাও করেছি GPIO.PUD_OFFএবং আরও পেয়েছি False

আমি কি এখানে কিছু মিস করছি?


তাহলে আপনার কি জিএনডি-তে 1k রেজিস্টরের সাথে সিরিজে স্যুইচ আছে? এটি সঙ্গে কাজ করা উচিত GPIO.PUD_UP। আপনি কী ভোল্টেজ দিয়ে দেখতে পাচ্ছেন GPIO.PUD_UPএবং বোতামটি টিপেছেন?
জন লা রুই

কিছুটা বিভ্রান্ত; সুইচ কি সংযুক্ত?
অ্যালেক্স চেম্বারলাইন

হ্যালো মাইকেল এবং রাস্পবেরি পাই আপনাকে স্বাগতম ! আমি আপনার দুটি অ্যাকাউন্ট একত্রিত করার স্বাধীনতা নিয়েছি। ধন্যবাদ!

উত্তর:


6

আমার জিপিআইও নেই pinout, আমাকে এটিতে পরিবর্তন করতে হয়েছিলsetmode

import time
from RPi import GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
while True:
    inputval = GPIO.input(7)
    print inputval
    time.sleep(1)

যেহেতু আপনি GPIO.BOARDপিন 7 ব্যবহার করছেন তা হ'ল লেবেলযুক্ত GPIO 4(GPCLK0)। আপনি যদি বোঝাতে চেয়েছিলেন তবে পরিবর্তে GPIO 7(CE1)আপনার ব্যবহার GPIO.setmode(GPIO.BCM)করা উচিত

এখানে চিত্র বর্ণনা লিখুন

আমি থেকে একটি 1k রোধ স্পর্শ করে কোড পরীক্ষিত 3V3 PowerকরতেGPIO 4(GPCLK0)


কেন এটি কাজ করছে না সে সম্পর্কে আমি আপনার সঠিক সম্পর্কে নিশ্চিত। GPIO.BOARDছবিতে যেমন দেখানো হয়েছিল তেমন বোর্ডের পিনআউট করার জন্য আমি ছিলাম , শারীরিক পিন নম্বর স্কিম নয় I আমি যখন কাজ থেকে বাড়ি ফিরে আসব তখন আমি এটি চেষ্টা করে দেখব এবং আমি নিশ্চিত যে এটি কার্যকর হবে।
মাইকেল

1

আমি পিনের সেটআপে কখনও "পুল_আপ_ডাউন = জিপিআইও.পিইউডি_ডাউন" ব্যবহার করি না। এটা চেষ্টা কর:

GPIO.setmode(GPIO.BCM)
GPIO.setup(PinNum,GPIO.IN)
while 1==1:
    if GPIO.input(PinNum)==1:
        print "True"
    else:
        print "False"

গনিবলার যেমন বলেছিলেন, নিশ্চিত করুন যে পিননাম বিসিএম জিপিআইওর জন্য is

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.